第二章 线程管理

sullay

关注

阅读 167

2022-01-27

第二章 线程管理

2.1 线程管理的基础

每个程序至少有一个线程:执行main()函数的线程,其余线程有其各自的入口函数。线程与原始线程(以main()函数为入口的线程)同时运行。如同main()函数执行完会退出一样,当线程执行完入口函数后,线程也会退出。

2.1.1 启动线程

线程在std::thread对象创建时启动。

void do_some_work();
std::thread my_thread(do_some_work);

std::thread可以调用可调用类型构造,将带有函数调用符类型的实例传入std::thread类中。

class background_task{
public:
	void operator()() const{
		do_something();
	}
};
background_task f;
std::thread my_thread(f);

代码中,提供的函数对象会复制到新线程的存储空间中,函数对象的执行和调用都在线程的内存空间中进行。

精彩评论(0)

0 0 举报