繁体   English   中英

关于boost.asio异步睡眠

[英]about boost.asio async sleep

我使用boost.asio异步读取数据,如果handle_read需要花费很多时间(例如睡眠),它是否会影响其他连接?

使用异步IO,您通常可以在一个线程中执行所有操作,因此您应该尽量缩短内容。 在处理输入时你肯定不想睡觉。

Boost有定时器让你进行异步睡眠。

如果在一个线程中执行io_service::runio_service顺序调用与该io_service关联的所有i / o对象的完成处理程序。 因此,如果其中一个花费太多时间,则所有队列都会卡住。

为了防止出现这种情况,您可以重新设计此完成处理程序,或将具有有问题处理程序的i / o对象与在单独线程中运行的专用io_service相关联。

(请注意,在多个线程中运行单个io_serivce无法解决此问题,因为您无法知道处理程序如何在线程之间分配。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM