C++11多线程教程(创建线程)

2021-04-02 03:26

阅读:459

标签:执行   ret   names   ios   使用   方法   控制   控制台   main   

创建线程与join()

#include
#include
using namespace std;
void proc()
{
      cout 

输出:
技术图片

main()函数为主线程,需要把子线程的工作内容放到一个函数中(proc()),主线程中通过thread th2(proc)语句创建子线程,该语句执行完毕子线程就已经开始运行。此时创建了一个名为th2的子线程,该子线程的工作内容为执行函数proc中的内容。
th2.join()表示阻塞主线程,等待子线程执行完毕。
不执行th2.join()的后果:主线程已经结束运行,子线程还未执行完毕,会报错。

detach():

如果不想阻塞在这里就将join()换成使用线程的detach()方法,将线程与线程对象分离,线程就可以继续运行下去,并且不会造成影响。

#include
#include
using namespace std;
void proc()
{
    cout 

输出:
技术图片

此时,主线程已经结束运行,子线程还未执行完毕,不会报错。但是,主线程结束后子线程的输出就不会显示到控制台。

C++11多线程教程(创建线程)

标签:执行   ret   names   ios   使用   方法   控制   控制台   main   

原文地址:https://www.cnblogs.com/zizbee/p/13499650.html


评论


亲,登录后才可以留言!