我是多线程编程和进程间通信机制的新手。
我有一个程序(假设是 A),它通过async_receive()
无限循环等待传入数据。
现在我想从一个单独的进程(比如说B)控制程序A。
更准确地说,我想在 B 发出信号时终止程序 A。这样,io_service()
程序 A 将被取消,因此程序 A 终止。
看来我应该在程序 A 中定义一个线程来等待来自 B 的信号。
我的问题是我怎么能收到B的信号?
我尝试使用message_queue
(mq) ( boost/interprocess/ipc/message_queue
)。所以,B 在 中放了一条消息,mq
但是我如何通知程序 A 从 中读取数据mq
?是否有可能mq
在 en\dequeued 中的新消息时调用处理程序?
换句话说,我想使用 Boost 库从 B 中中断 A。如果你能给我一个提示,你会帮助我很多。