3 Star 2 Fork 3

四月是你的谎言/深入应用C++11:代码优化与工程级应用 的实践代码

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
5-4.cpp 917 Bytes
一键复制 编辑 原始数据 按行查看 历史
#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;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/HeLiangMsg/c11_book_learned_code.git
[email protected]:HeLiangMsg/c11_book_learned_code.git
HeLiangMsg
c11_book_learned_code
深入应用C++11:代码优化与工程级应用 的实践代码
master

搜索帮助