C++ 要在boost asio中的共享队列中发送的轮询命令

C++ 要在boost asio中的共享队列中发送的轮询命令,c++,boost,asio,C++,Boost,Asio,我正在使用Boost asio制作一个服务器,我面临一个问题。 我的服务器应该能够从多个连接的客户端接收数据,并向特定的客户端发送命令 为此,我正在为每个连接的客户机实例化一个新的连接会话,其中我使用一个回调调用async\u read,该回调调用async\u write,使用一个调用async\u read等的回调调用async\u write 我面临的问题如下: 如果服务器有一个GUI,我可以在其中单击要发送的命令,然后将这些命令放入共享队列中。由于队列是共享的,每个连接会话都可以轮询以查

我正在使用Boost asio制作一个服务器,我面临一个问题。 我的服务器应该能够从多个连接的客户端接收数据,并向特定的客户端发送命令

为此,我正在为每个连接的客户机实例化一个新的连接会话,其中我使用一个回调调用async\u read,该回调调用async\u write,使用一个调用async\u read等的回调调用async\u write

我面临的问题如下:

如果服务器有一个GUI,我可以在其中单击要发送的命令,然后将这些命令放入共享队列中。由于队列是共享的,每个连接会话都可以轮询以查看是否有要发送到其连接的客户端的命令

问题是,使用会话中的“调用自身的回调”方案,我如何在不破坏性能的情况下检查队列中是否有命令(我的第一个解决方案是在async_写入操作上放置一个截止时间计时器,以便我可以每X秒检查一次)


有什么想法吗?

关键是基于pro-actor的事件处理从根本上与轮询队列相反

通常,您将创建一个队列并安排一个写循环(使用异步回调样式),直到写循环耗尽为止。这方面的一个例子如下:(查找
chat\u message\u queue
write\u in\u progress

基本上,您注入一个事件(即“MessageQueued”),并让异步调用链耗尽队列。将每个消息的操作排队的好处是异步调用链执行隐式排序/同步


imk implicit threads-

关键是基于pro-actor的事件处理从根本上与轮询队列相反

通常,您将创建一个队列并安排一个写循环(使用异步回调样式),直到写循环耗尽为止。这方面的一个例子如下:(查找
chat\u message\u queue
write\u in\u progress

基本上,您注入一个事件(即“MessageQueued”),并让异步调用链耗尽队列。将每个消息的操作排队的好处是异步调用链执行隐式排序/同步

⑨隐式链-