可以通过 thread 来创建一个线程,线程创建后就开始执行了
#include <thread>
std::thread t(func, args);
如何等待线程执行完毕:
join
:- 等待期间,当前线程会阻塞
join
会清理子线程的内存空间,此后子线程就无法再join
了
detach
:- 子线程独立执行,执行完后会自动清理空间
- 一般情况下是使用
join
注:
- 一旦主线程执行完毕,进程就会退出,没有执行完的子线程也会退出。
- 如果没有进行
detach
,一旦线程对象发生了析构,线程就会立刻终止。