我了解正在运行的 asio 服务就像一个队列,我可以使用它来发布线程将按顺序执行的任务。但是,与任何队列一样,我想也有限制。是否可以为 asio 服务设置此限制?是否可以设置队列满时遵循什么策略(即阻塞、非阻塞等)?
更新
假设我有一个运行 asio::service 的线程和一个每 10 毫秒向该线程发布一个任务的计时器。任务接收绑定到一个方法调用,这将使线程休眠 100 毫秒。因此,我有一个计时器每秒向一个线程发布 100 个任务,该线程每秒能够执行 10 个任务。很明显,这种情况会有所不同。然而,在处理队列时,通常有方法来确定队列深度(100?1000?入队的帖子等)或指定发送方在队列已满时应遵循的策略(即它应该等待还是应该丢弃请求并继续?)。我的问题是如何在 asio::service 中设置这些功能?