合集-c++并发编程实战-读书笔记
摘要:线程的基本管控 每个应用程序都至少拥有一个线程,即运行main函数的线程,称为主线程,它由c++运行时系统启动。我们可以在软件运行中产生其他线程,它们以指定的函数作为入口函数。当main函数返回后,程序会退出;同样,当入口函数返回后,与之对应的线程结束。 发起线程 线程是通过构造std::threa
阅读全文
摘要:前言 c++11开始支持多线程,使得编写c++多线程程序无需依赖特定的平台,使开发者能够编写可移植的、行为确定的多线程程序代码。 什么是并发 所谓并发,是两个或多个同时独立进行的活动。而计算机中的并发,是指同一个系统中,多个独立活动同时进行。 对于单核处理器,在同一时刻,只能处理一个任务,操作系统将
阅读全文
摘要:线程间共享数据的问题 多线程之间共享数据,最大的问题便是数据竞争导致的异常问题。多个线程操作同一块资源,如果不做任何限制,那么一定会发生错误。例如: 1 int g_nResource = 0; 2 void thread_entry() 3 { 4 for (int i = 0; i < 1000
阅读全文
摘要:等待事件或等待其他条件 坐车案例 想象一种情况:假设晚上坐车外出,如何才能确保不坐过站又能使自己最轻松? 方法一:不睡觉,时刻关注自己的位置 1 #include <iostream> 2 #include <thread> 3 #include <mutex> 4 using namespace
阅读全文