C++11 的 thread 库,为什么没有start方法。
C++11 希望用 thread 库来实现多线程,要启动线程,但thread类为什么没有start方法?
我看网上很多文章都是用join方法来开启线程。join显然是同步的,没达到多线程异步的效果。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
C++11 希望用 thread 库来实现多线程,要启动线程,但thread类为什么没有start方法?
我看网上很多文章都是用join方法来开启线程。join显然是同步的,没达到多线程异步的效果。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
std::thread::join()
这个函数并不是用来开启线程的,相反,是为了阻塞当前线程以等待相应线程结束的。std::thread
对象构造的时候即开始运行新线程。join()
本身并不是启动线程。异步访问还可以用
async
,搭配std::future
。不过这并不一定能保证会启动新线程——除非强制指定std::launch::async
。本身只能保证在 get 或者 wait 的时候能执行。