Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <queue>
- #include <thread>
- #include <iostream>
- void retrieve_and_delete(std::queue<int>& rawQueue, std::string threadName) {
- if( !rawQueue.empty() ) {
- std::string out = "[ " + threadName + " ] front " + std::to_string(rawQueue.front());
- rawQueue.pop();
- out += " | new front " + std::to_string(rawQueue.front()) + "\n";
- std::cout << out;
- }
- }
- int main() {
- std::queue<int> rawQueue;
- // queue 0 to 19
- for ( int i = 0; i < 20; i++) {
- rawQueue.push(i);
- }
- for ( int i = 0; i < 10; i++) {
- std::thread tA(retrieve_and_delete, std::ref(rawQueue), "A");
- std::thread tB(retrieve_and_delete, std::ref(rawQueue), "B");
- tA.join();
- tB.join();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement