60 lines
797 B
C++
60 lines
797 B
C++
#include <iostream>
|
|
#include <thread>
|
|
#include <atomic>
|
|
#include <list>
|
|
#include <mutex>
|
|
using namespace std;
|
|
|
|
|
|
std::mutex mut;
|
|
std::list<int> bbbb;
|
|
int a = 0;
|
|
void func()
|
|
{
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
bbbb.push_back(a);
|
|
cout << a << "数字添加成功\n";
|
|
a++;
|
|
}
|
|
}
|
|
void func1()
|
|
{
|
|
for (int i = 0; i < 5000; i++)
|
|
{
|
|
mut.lock();
|
|
if (bbbb.size() > 0)
|
|
{
|
|
cout << *bbbb.begin() << "数字删除成功\n";
|
|
bbbb.pop_front();
|
|
}
|
|
else
|
|
{
|
|
i--;
|
|
}
|
|
mut.unlock();
|
|
}
|
|
}
|
|
int main() {
|
|
//thread t1([] {
|
|
//
|
|
//});
|
|
|
|
thread t2[10];
|
|
for (size_t i = 0; i < 5; i++)
|
|
{
|
|
t2[i] = thread (func);
|
|
}
|
|
for (size_t i = 0; i < 5; i++)
|
|
{
|
|
t2[i + 5] = thread(func1);
|
|
}
|
|
for (size_t i = 0; i < 10; i++)
|
|
{
|
|
t2[i].join();
|
|
}
|
|
|
|
//cout << "最后值" << a.load()->code;
|
|
return 0;
|
|
}
|