gpt4 book ai didi

c++ - boost::asio lib 的那些 async_* 函数是否由操作系统并行执行

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:17 27 4
gpt4 key购买 nike

最近我在使用 boost::asio 库,并且对那些 async_* 函数有疑问。

假设我连续调用多个 boost::asio::async_write(),这些 async_write() 函数是否可能由底层操作系统并行执行,即使io_service 是单线程运行的

谢谢!

最佳答案

is it possible that these async_write() functions executed parallelly by the underlying operating system

是的,他们是!
有两种类型的异步操作,CPU 绑定(bind)任务和 IO 绑定(bind)任务。

CPU 密集型任务是只涉及 CPU 执行的任务,例如计算、读写数据到 RAM 等。

IO-Bound 任务是涉及读写设备的任务,如硬盘(文件 IO)、网卡(网络 IO)等。

为了异步执行受 CPU 限制的任务,您需要多个线程,但 IO 不同。异步IO不利用线程并行,它只是将请求排队到相关设备(硬盘、网卡等),然后继续执行另一个代码,而不等待IO完成。

是的,即使没有多线程,异步 IO(例如,由 boost Asynchronous IO 给出)仍将并行工作。

关于c++ - boost::asio lib 的那些 async_* 函数是否由操作系统并行执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40056664/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com