随笔分类 -  <九>:C++多线程

C++多线程
摘要:unique_lock condition_variable 1:lock_guard 和 unique_lock 2:condition_variable wait 和 notify_all 方式1 std::mutex mtx; mtx.lock(); .. ... mtx.unlock();/ 阅读全文
posted @ 2022-12-14 11:35 Hello_Bugs 阅读(124) 评论(0) 推荐(0) 编辑
摘要:C++11多线程类库中提供了 include包含了很多原子类型 原子操作 若干汇编指令具有读-修改-写类型,也就是说它们访问存储器单元两次,第一次读原值,第二次写新值 假定运行在两个cpu上的两个内核控制路径试图通过执行非原子操作来同时读-修改-写同一个存储器。 首先两个cpu都试图读同一单元,然后 阅读全文
posted @ 2022-12-13 17:00 Hello_Bugs 阅读(130) 评论(0) 推荐(0) 编辑
摘要:多线程编程两个问题 1:线程互斥问题 竞态条件->临界区代码段->原子操作->互斥锁mutex 2:线程间的同步通信 生产者,消费者 线程模型 #include <iostream> #include <queue> #include <thread> #include <mutex> #inclu 阅读全文
posted @ 2022-12-13 15:47 Hello_Bugs 阅读(49) 评论(0) 推荐(0) 编辑
摘要:多线程程序 竞态条件:多线程程序执行的结果是一致的,不会随着CPU对线程不同的调用顺序而产生不同的运行结果. 解决?:互斥锁 mutex 经典的卖票问题,三个线程卖100张票 代码1 #include <iostream> #include <thread> #include <list> #inc 阅读全文
posted @ 2022-12-12 16:01 Hello_Bugs 阅读(139) 评论(0) 推荐(0) 编辑
摘要:C++语言层面多线程=>好处:跨平台 windows/linux thread/mutex/condition_variable lock_gurad/unique_lock atomic/原子类型,基于CAS操作的原子类型 线程安全的 睡眠sleep_for C++ thread => windo 阅读全文
posted @ 2022-12-12 14:40 Hello_Bugs 阅读(132) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示