c++11 多线程依次打印ABC
并发 练习代码
#include <thread> #include <vector> #include <mutex> #include <iostream> using namespace std; std::mutex mtx; std::condition_variable cv; char arr[] = { 'a','b','c' }; char message = 'a'; void test(int i) { for(int j = 0 ;j < 10;++j){ std::unique_lock<std::mutex> lk(mtx); cv.wait(lk, [=] {return message == arr[i]; }); std::cout << arr[i]; message = arr[(i + 1) % 3]; lk.unlock(); cv.notify_all(); } } int main() { std::thread t[3]; for (int i = 0; i < 3; ++i) { t[i] = std::thread(test,i); } for (int i = 0; i < 3; ++i) { t[i].join(); } std::cout << std::endl; return 0; }
作 者: itdef
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
欢迎转帖 请保持文本完整并注明出处
技术博客 http://www.cnblogs.com/itdef/
B站算法视频题解
https://space.bilibili.com/18508846
qq 151435887
gitee https://gitee.com/def/
欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
如果觉得不错,欢迎点赞,你的鼓励就是我的动力
![阿里打赏](https://files.cnblogs.com/files/itdef/ali2.bmp)
![微信打赏](https://files.cnblogs.com/files/itdef/weixin2.bmp)