C++的多线程编程被用来让一个程序的代码两条路径同时运行,它可以让程序运行的更快,也可以让程序运行时执行不同的操作,比如当程序在执行cin操作时,会一直等待用户输入enter,此时程序就无法执行其他操作,如果使用多线程就可以解决这个问题
#include <thread>
#include <iostream>
static bool finished = false;
void doworking(){
while(!finished){
std::cout << "working " << std::endl;
}
}
int main(int argc, char *argv[]){
std::thread work(doworking);//开辟另一个线程来执行这个函数
cin.get();
finished = true;
work.join();//主线程等待子线程执行完毕
std::cout << "finished ! " << std::endl;
}
程序的运行效果如下图
当按下enter键后,运行结果如下,此时子线程结束运行,程序运行结束