(二)线程启动、结束,创建线程方法

用函数方法创建线程

(1)thread:标准库里的类
(2)join():加入/汇合,阻塞主线程,让主线程等待子线程执行完毕,然后子线程和主线程汇合。
(3)detach():传统多线程程序要等待子线程执行完毕,然后主线程退出。detach:分离,主线程和子线程不汇合,主线程也不必等子线程运行完毕。

detach后不能再join ,join后也不能在detach。
(4)joinable():判断是否可以join或者detach
案例:
在这里插入图片描述

输出:
在这里插入图片描述

用类的方法创建线程:

通过类的方法创建线程:
在这里插入图片描述
输出:
在这里插入图片描述
**最后需要注意的是:**上面代码第37行,ta参数在子线程中是传入的ta的拷贝,其他参数也是。在使用detach函数时,需要注意如果主线程先结束,释放了子线程传入的参数,这时候子线程会引用非法内存而造成bug。后续的帖子会进一步详述。

猜你喜欢

转载自blog.csdn.net/u014571489/article/details/82985915
今日推荐