摘要: 第五节 互斥量概念、用法、死锁演示及解决详解 一、互斥量(mutex)的基本概念 互斥量就是个类对象,可以理解为一把锁,多个线程尝试用lock()成员函数来加锁,只有一个线程能锁定成功,如果没有锁成功,那么流程将卡在lock()这里不断尝试去锁定。互斥量使用要小心,保护数据不多也不少,少了达不到效果 阅读全文
posted @ 2022-08-30 21:23 〉外圆内方〈 阅读(65) 评论(0) 推荐(0)
摘要: 第四节 创建多个线程、数据共享问题分析、案例代码 一、创建和等待多个线程 #include <thread> #include <iostream> #include <vector> using namespace std; void TextThread() { cout << "我是线程" < 阅读全文
posted @ 2022-08-30 20:59 〉外圆内方〈 阅读(44) 评论(0) 推荐(0)
摘要: 第三节 线程传参详解 一、传递临时对象作为线程参数要避免的陷阱1: #include <iostream> #include <thread> using namespace std; //void myprint(const int& i, char* pmbuf)void myprint(con 阅读全文
posted @ 2022-08-30 20:23 〉外圆内方〈 阅读(87) 评论(0) 推荐(0)
摘要: 第二节 线程启动、结束,创建线程多法、join,detach 一、范例演示线程运行的开始 程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;当主线程从main()函数返回,则整个进程执行完毕主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个 阅读全文
posted @ 2022-08-30 16:57 〉外圆内方〈 阅读(44) 评论(0) 推荐(0)
摘要: 一、并发、进程、线程的基本概念和综述 1.1 并发 两个或者更多的任务(独立的活动)同时发生(进行):一个程序同时执行多个独立的任务;以往计算机,单核cpu(中央处理器):某一个时刻只能执行一个任务,由操作系统调度,每秒钟进行多次所谓的“任务切换”。并发的假象(不是真正的并发),切换(上下文切换)时 阅读全文
posted @ 2022-08-30 15:47 〉外圆内方〈 阅读(95) 评论(0) 推荐(0)