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

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_poolio_context是一个asio::execution_context。但是,文档说它io_context“提供核心 I/O 功能”。如果我只使用一个asio::thread_pool而没有一个,我会失去这些io_context吗?

seh*_*ehe 7

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

io_service 不会对运行它的线程进行任何假设:您需要确保这样做,并且您可以自由决定是在多个线程、一个线程还是混合线程(例如一个线程)上运行它一次,但来自多个线程?)。

进一步说明: