Che*_*han 5 c++ boost boost-asio c++11
最近我使用的是boost :: asio库,并对这些async_*函数有疑问.
假设我boost::asio::async_write()连续调用多个,async_write()即使io_service是单线程运行的,这些函数是否可能由底层操作系统并行执行
谢谢!
是否有可能这些async_write()函数由底层操作系统并行执行
对,他们是!
有两种类型的异步操作,CPU绑定任务和IO绑定任务.
CPU绑定任务是仅涉及CPU执行的任务,如计算,读取和写入RAM等数据.
IO绑定任务是涉及读取和写入设备的任务,如硬盘(文件IO),网卡(网络IO)等.
为了异步执行CPU绑定任务,您需要多个线程,但IO是不同的.异步IO不利用线程并行,它只是将请求排队到相关设备(硬盘,网卡等)并继续执行另一个代码,而不等待IO完成.
所以,即使没有多个线程,异步IO(例如,由boost as ynchronous IO给出)仍将并行工作.
| 归档时间: |
|
| 查看次数: |
213 次 |
| 最近记录: |