c++ thread线程

c++ thread线程,第1张

c++ thread线程

catalog
  • C++线程
    • 主线程
    • join

C++线程

#include 然后通过 ::std::thread th; 可以创建一个线程

但是, 如果提示说: 找不到文件, 参考: 添加链接描述


主线

我们平时接触最多的: main函数; 他就是一个 主线程.
主线程的结束, 就意味着: 你的exe进程的结束.

void th_func(){
	111
	222
	333
}

main(){
	aaa
	
	thread th( th_func);  ' 创建线程, 并且开启线程执行 '

	bbb
}

(主线程): aaa, 开启一个线程, bbb
(子线程): 111 222 333

注意, 所有的线程, 是并发的在进行

上述代码的 执行, 可能是: aaa 111 bbb (到了bbb, 意味着: 主线程的结束, 即exe进程的结束)

但是问题是: 此时, 子线程 还在执行!!! 你的子线程, 肯定是要依赖 exe进程的; 而你的进程, 已经结束了!!!....
这个原理, 就和 内存泄漏一样.

所以, 这个代码 是会报错的!!!


即默认情况下:

--------------------->   主线程
	--------------------------> 子线程

两者互不干扰!!!
但是: 虽然两者互不联系, 但是, 主线程一旦结束 exe就结束了; 而, 子线程 是需要这个exe进程环境的


join

为了防止以上的情况, 即避免: exe结束了, 而子线程还在运行, 引入join

join, 顾名思义, 即 加入. 将子线程 加入到 main主线程里.

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5685457.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存