先来看一个最简单的多线程程序
#include <iostream>
#include <thread>
using namespace std;
void print() {
std::cout << "Hello Multi Thread" << std::endl;
}
int main()
{
std::thread t(print);
t.join();
return 0;
}
- 添加头文件
#include <thread>
- 定义线程入口函数
print
- 定义
thread
对象 - 确定线程的分离方式,线程的分离方式一共有2种,分别为 join() 以及 detach()。
join() 表示调用线程(main线程)在print
线程函数执行结束之后才接着往下执行。
detach() 表示调用线程不等待print
线程函数执行结束,直接执行下面的代码。
要附加说明的一点是,print
线程在第3步执行后就在等待时间片,等着CPU调度执行了。
好了,一个多线程程序已经完成了,怎么样,是不是很简单。
但是,这个多线程程序是没有意义的。一个人能干完的活没有老板会雇两个人,线程也是一样的。