Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.73 KB | None | 0 0
  1. #include <queue>
  2. #include <thread>
  3. #include <iostream>
  4.  
  5. void retrieve_and_delete(std::queue<int>& rawQueue, std::string threadName) {
  6. if( !rawQueue.empty() ) {
  7. std::string out = "[ " + threadName + " ] front " + std::to_string(rawQueue.front());
  8. rawQueue.pop();
  9. out += " | new front " + std::to_string(rawQueue.front()) + "\n";
  10. std::cout << out;
  11. }
  12. }
  13.  
  14. int main() {
  15. std::queue<int> rawQueue;
  16.  
  17. // queue 0 to 19
  18. for ( int i = 0; i < 20; i++) {
  19. rawQueue.push(i);
  20. }
  21.  
  22. for ( int i = 0; i < 10; i++) {
  23. std::thread tA(retrieve_and_delete, std::ref(rawQueue), "A");
  24. std::thread tB(retrieve_and_delete, std::ref(rawQueue), "B");
  25. tA.join();
  26. tB.join();
  27. }
  28.  
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement