ASIO::IO_CONTEXT和ASIO::THREAD_POOL有什么区别? [英] What's the difference between asio::io_context and asio::thread_pool?

查看:22
本文介绍了ASIO::IO_CONTEXT和ASIO::THREAD_POOL有什么区别?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

asio::thread_poolasio::io_context谁的run()函数是从多个线程调用的,有什么区别?我可以将调用io_context::run()的线程的boost::thread_group替换为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,我会丢失这些吗?

推荐答案

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

io_service不假定将运行它的线程的任何内容:您需要确保这样做,并且您可以自由地决定是在多个线程上运行它,还是在一个线程上运行,甚至可以在混合线程上运行(就像一次运行一个线程,但从多个线程运行?)。

进一步说明:

这篇关于ASIO::IO_CONTEXT和ASIO::THREAD_POOL有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆