视频链接:点击打开链接
并发编程的两种方式:多进程,多线程
多进程:每个进程只有一个主线程,进程之间需要进程间通信机制
多线程:一个进程包括两个或多个线程,通过共享内存通信,优点:快,开销低;缺点:难以实现,不能运行在分布式系统上
简单的多线程:
#include <iostream>
#include <thread> // C++ 11
void function1() {
std::cout<<"Hello!"<<std::endl;
}
int main() {
std::thread t1(function1); // 创建线程并开始运行
t1.join(); //主线程等待t1运行结束,使用t1.detach()将使得t1独立运行,主线程不再等待t1
return 0;
}
注意在使用t1.detach()之后不可再执行t1.join(),线程一旦detach就意味着永远detach
一个线程是否可以执行join()可以通过t1.joinable()判断