【发布时间】:2012-07-31 21:36:38
【问题描述】:
我了解正在运行的 asio 服务就像一个队列,我可以使用它来发布线程将按顺序执行的任务。但是,与任何队列一样,我想也有限制。是否可以为 asio 服务设置此限制?是否可以设置队列满时遵循什么策略(即阻塞、非阻塞等)?
更新
假设我有一个运行 asio::service 的线程和一个每 10 毫秒向该线程发布一个任务的计时器。任务接收绑定到一个方法调用,这将使线程休眠 100 毫秒。因此,我有一个计时器每秒向一个线程发布 100 个任务,该线程每秒能够执行 10 个任务。很明显,这种情况会有所不同。然而,在处理队列时,通常有方法来衡量队列深度(100?1000?入队的帖子等)或指定发送方在队列满时应该遵循的策略(即它应该等待还是应该丢弃请求并继续?)。我的问题是如何在 asio::service 中设置这些功能?
【问题讨论】:
-
这个问题有点含糊,或许你可以举个例子说明一下?
-
感谢山姆的评论。我希望现在更容易理解
标签: c++ boost boost-asio