之前几次学习多线程但都没有学到最后,今天重启C++多线程学习计划,希望可以坚持到最后。首先简单介绍一下进程以及线程。进程是系统资源分配的最小单位,线程是cpu执行的最小单位。简单来说,一个可执行程序运行起来就是一个进程,一个进程可能包含多个线程,一个进程一定有一个主线程,就相当于main函数,是程序的入口。
1. 创建一个线程,线程被创建后就立即开始执行。
#include <iostream>
using namespace std;
#include "thread"
void threadTest()
{
cout << "This is other thread\n";
}
int main(int argc, const char * argv[]) {
// insert code here...
thread mythread (threadTest);
mythread.join();
cout << "This is main thread\n";
return 0;
}
结果:
这里使用了thread.join函数,这时候主线程会被阻塞,等待mythread执行完才会继续执行。
2. 也可以使用thread.detach函数,这样主线程和子线程分离,主线程不再等待子线程执行,子线程成为守护线程,由C++