好奇的探索者,理性的思考者,踏实的行动者。
github第二版翻译资源:
https://github.com/xiaoweiChen/CPP-Concurrency-In-Action-2ed-2019
2.1 线程管理的基础
启动线程
* 函数
void do_some_work();
std::thread my_thread(do_some_work);
class background_task
{
public:
void operator()() const
{
do_something();
do_something_else();
}
};
background_task f;
std::thread my_thread(f);
std::thread my_thread([]{
do_something();
do_something_else();
});
启动了线程,你需要明确是要等待线程结束,还是让其自主运行
如果std::thread对象销毁之前还没有做出决定,程序就会终止
std::thread的析构函数会调用std::terminate()