代码拉取完成,页面将自动刷新
#include <thread>
#include <iostream>
#include <mutex>
using std::cout;
using std::endl;
std::timed_mutex mutex;
void fireworks()
{
//waiting to get a lock: each trhead prints "-" every 200ms
while(!mutex.try_lock_for(std::chrono::milliseconds(200))) //如果 timed_mutex 当前未被任何线程锁定,则调用线程将其锁定(从此时开始,直到调用其成员 unlock,该线程拥有 timed_mutex)。
{
cout << "-"; //每个线程都会打印的
}
cout << std::this_thread::get_id();
//got a lock ! - wait for 1s ,the this thread prints "*"
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
cout << "*\n";
mutex.unlock();
}
int main(void)
{
std::thread threads[10];
for(int i = 0; i < 10; ++i)
{
threads[i] = std::thread(fireworks);
}
for(auto & th : threads)
{
th.join();
}
return 0;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。