asio::io_context 和 asio::thread_pool 的区别是什么?

问题描述 投票:1回答:1

和线程池的区别是什么?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 它 "提供核心IO功能"。如果我只使用一个 asio::thread_pool 不加掩饰 io_context?

c++ boost-asio asio
1个回答
2
投票

一个线程池隐式地运行所有发布在它上面的任务(直到它被停止)。

一个io_service不会假设任何关于运行它的线程的事情:你需要确保你这样做,你可以自由决定是否在多个线程、一个线程、甚至是混合线程上运行它(比如一次一个线程,但从多个线程?

进一步的说明。

© www.soinside.com 2019 - 2024. All rights reserved.