CSTest/线程函数/线程函数.cpp

60 lines
797 B
C++
Raw Normal View History

2024-10-17 15:56:43 +08:00
#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;
}