《C++并发编程》
- Chapter 1
何谓并发
计算机中的并发是指单个系统里同时执行多个独立的任务。
并发的途径
大多采用轻量级的“进程”——线程来实现并发
- Chapter 2
启动线程
如大多数C++标准库一样,std::thread可以用可调用类型构造,将带有函数调用符类型的实例传入std::thread类中,替换默认的构造函数。
RAII方便管理线程
后台运行线程
通常称分离线程为守护线程(daemon threads)
向线程函数传递参数
传递参数时线程不会去查看函数的形参类型,只会无脑将实参传递过去,所以传递一个引用需要使用std::ref.
当传递一个成员函数作为入口函数的时候,需要将这个对象的指针当作第一个参数来传递。
线程所有权
std::thread可移动(move)而不可复制(copy),不可以通过赋值(assignment)来丢弃一个线程。
std::async
如果想要异步执行任务,最好显示使用std::launch::async调用