用函数方法创建线程
(1)thread:标准库里的类
(2)join():加入/汇合,阻塞主线程,让主线程等待子线程执行完毕,然后子线程和主线程汇合。
(3)detach():传统多线程程序要等待子线程执行完毕,然后主线程退出。detach:分离,主线程和子线程不汇合,主线程也不必等子线程运行完毕。
detach后不能再join ,join后也不能在detach。
(4)joinable():判断是否可以join或者detach
案例:
输出:
用类的方法创建线程:
通过类的方法创建线程:
输出:
**最后需要注意的是:**上面代码第37行,ta参数在子线程中是传入的ta的拷贝,其他参数也是。在使用detach函数时,需要注意如果主线程先结束,释放了子线程传入的参数,这时候子线程会引用非法内存而造成bug。后续的帖子会进一步详述。