asio :: io_context和asio :: thread_pool有什么区别?

时间:2020-05-18 07:29:32

标签: c++ boost-asio asio

从多个线程调用asio::thread_pool函数的asio::io_contextrun()之间有什么区别?是否可以将我的boost::thread_group的调用io_context::run()的线程替换为asio::thread_pool?还是我需要在某个地方io_context

更新

当我使用asio::thread_pool时,是否仍需要io_context来使用套接字,计时器等? thread_poolio_context都是asio::execution_context。但是,文档在io_context上说它“提供了核心I / O功能”。如果我仅使用asio::thread_pool而没有使用io_context,会丢失这些信息吗?

1 个答案:

答案 0 :(得分:2)

隐式线程池运行所有发布在其上的任务(直到其停止)。

io_service对运行它的线程不做任何假设:您需要确保执行此操作,并且可以自由决定是否在多个线程,一个线程甚至是多个线程上运行它(就像是一次同时出现一个线程,但来自多个线程?)。

更多说明:

相关问题