C++11中的线程,怎么让它不阻塞主线程?

沙尘暗影 2014-04-22 10:53:09
join方法会阻塞主线程,但我需要它与主线程同步,怎么让它不阻塞?
...全文
1449 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ningto.com 2014-04-24
  • 打赏
  • 举报
回复
引用 6 楼 alanmaths 的回复:
[quote=引用 4 楼 tujiaw 的回复:] 可以在创建完子线程后调用detach方法分离主线程和子线程,当子线程结束后会自动释放资源, 但是主线程对子线程就没有控制权了。 join方法会等待子线程结束,然后会释放资源,主线程才能继续执行。
那还是CreateThread好啊,既不阻塞,也可以控制[/quote] 也存在这个问题啊,要用CreateEvent来同步,或者条件变量
FancyMouse 2014-04-24
  • 打赏
  • 举报
回复
用join来同步也是有点奇葩。
沙尘暗影 2014-04-24
  • 打赏
  • 举报
回复
引用 4 楼 tujiaw 的回复:
可以在创建完子线程后调用detach方法分离主线程和子线程,当子线程结束后会自动释放资源, 但是主线程对子线程就没有控制权了。 join方法会等待子线程结束,然后会释放资源,主线程才能继续执行。
那还是CreateThread好啊,既不阻塞,也可以控制
沙尘暗影 2014-04-23
  • 打赏
  • 举报
回复
引用 1 楼 aihahaheihei 的回复:
detach()
和 join用法一样吗?
DeDeWo 2014-04-23
  • 打赏
  • 举报
回复
引用 2 楼 alanmaths 的回复:
引用 1 楼 aihahaheihei 的回复:
detach()
和 join用法一样吗?
http://www.lijieblog.com/?p=4160
ningto.com 2014-04-23
  • 打赏
  • 举报
回复
可以在创建完子线程后调用detach方法分离主线程和子线程,当子线程结束后会自动释放资源, 但是主线程对子线程就没有控制权了。 join方法会等待子线程结束,然后会释放资源,主线程才能继续执行。
「已注销」 2014-04-23
  • 打赏
  • 举报
回复 1
这个问题问的很奇怪,即使你不用thread,用操作系统的createthread创建的线程,如果想知道该线程在什么时候完成不也得用类似的方法吗? 比如waitforsingobject()
DeDeWo 2014-04-22
  • 打赏
  • 举报
回复
detach()

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧