Val*_*lis 5 c++ boost-asio asio
从多个线程调用其函数的anasio::thread_pool和 an之间有什么区别?我可以取代我该调用线程有?或者我需要某个地方吗?asio::io_contextrun()boost::thread_groupio_context::run()asio::thread_poolio_context
更新
当我使用 时asio::thread_pool,我还需要io_context使用套接字、定时器等吗?这两个thread_pool和io_context是一个asio::execution_context。但是,文档说它io_context“提供核心 I/O 功能”。如果我只使用一个asio::thread_pool而没有一个,我会失去这些io_context吗?
线程池隐式运行发布在其上的所有任务(直到其停止)。
io_service 不会对运行它的线程进行任何假设:您需要确保这样做,并且您可以自由决定是在多个线程、一个线程还是混合线程(例如一个线程)上运行它一次,但来自多个线程?)。
进一步说明:
io_servicerun/poll 成员的异常(是否应该捕获 boost::asio::io_service::run() 抛出的异常?)io_service可以重新启动(在 后reset())。asio::thread_pool没那么多(参见[search is dead atm ],与asio::io_service 和 thread_group 生命周期问题进行比较)asio::thread_pool是“不透明的”:您无法控制它们的创建方式。如果您需要例如每个线程初始化第三方库或想要将 Boost Thread 与interruption_points等一起使用,那么这将是一个无赖。| 归档时间: |
|
| 查看次数: |
758 次 |
| 最近记录: |