升压的3210说:重要的是在致电boost::asio::io_service::run()
之前给io_service
做一些工作。但是如果我要做一些工作并且我的io_service
对象运行方法正在多线程上运行,会发生什么?我应该给每个线程1个工作,以防止其他人完成?或者我可以启动io的许多线程运行,并只给1件工作。我想提一提,在我的问题中,'工作'这个词不是指io_service::work::work
。多线程和升压io_service
2
A
回答
5
io_service
的工作状态不是由处理io_service
的线程数量决定的。例如,如果io_service
已经工作,即使线程数量大于发布的工作量,处理io_service
通过io_service::run()
的所有线程仍将阻止处理事件循环。因此,将单个工作操作添加到io_service
是安全的,然后有许多线程处理io_service
。总体而言,除非在io_service
构造函数中明确暗示并发性,否则io_service
不会区分由单个线程或多个线程处理的事件循环。如threads overview中所述,io_service
将把所有加入其池的线程视为等效线程,以任意方式在线程之间分配工作。
相关问题
- 1. 升压io_service对象调查
- 2. 升压ASIO多线程
- 3. 升压线程和插座
- 4. 如何删除升压io_service对象
- 5. 升压C++线程
- 6. 多线程升压 - asio服务器(VS升压异步服务器教程)
- 7. 升压线程与CLR
- 8. 升压线程错误
- 9. 如何使升压线程池::线程
- 10. 多个提升io_service在单独的线程上的多个网卡
- 11. boost asio io_service对象和底层线程
- 12. io_service :: run()的专用线程
- 13. 提升。多线程
- 14. 如何取消升压ASIO io_service对象后
- 15. 升压短耳,io_service对象处理每个核心
- 16. 使用Boost线程和io_service创建线程池
- 17. 访问升压线程对象
- 18. 带升压线程的Qt更新GUI
- 19. 升压线程中的内存泄漏?
- 20. 与Eclipse升压找不到线程库
- 21. 升压线程 - 通过参考
- 22. 试图链接升压1.52线程
- 23. 升压过程
- 24. 提升:大图和多线程
- 25. 提升多线程和共享变量
- 26. 升压共享指针:多线程同时读取访问
- 27. 使用升压异步API的多线程
- 28. Serialize io_service :: post()执行io_service :: run()仅在单个线程中调用
- 29. 升压线坏访问
- 30. 升压线与 “睡眠”