C++并发(创建线程)

创建线程
案例1:如何创建线程

#include <thread>
void do_some_work();
std::thread my_thread1(do_some_work);//函数对象会复制到新线程的存储空间中,函数对象的执行和调用都在线程的内存空间中进行

class background_task
{
public:
	void operator()() const
	{
		do_something();
		do_something_else();
	}
};
background_task f;
std::thread my_thread2(f);//可调用对象f
std::thread my_thread3((background_task()));//std::thread my_thread(background_task())不可用,使用临时变量该语句会被编译器判定为函数声明
std::thread my_thread4{background_task()};//新的初始化语法

案列2:线程的加入、分离

#include <iostream>
#include <thread>
void do_some_work()

int main()
{
	cout<<"run do_some_work"<<endl;
	std::thread my_thread(do_some_work);//创建线程
	my_thread.join();//加入线程,主线程会等待子线程结束
	//my_thread.detach()  分离线程,主线程不会等待子线程结束
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章