使用单线程等待消息队列和套接字

Posted

技术标签:

【中文标题】使用单线程等待消息队列和套接字【英文标题】:using single thread for waiting on message queue and socket 【发布时间】:2018-04-30 09:40:07 【问题描述】:

我在一个进程中有 2 个线程。我正在使用消息队列进行线程间通信,线程 2 和进程 1 使用套接字进行通信。

线程 2 等待消息队列上的条件变量,一旦线程 1 写入消息队列,它就会设置条件变量线程 2 唤醒并开始处理。 其他进程也在线程 2 上发布到套接字。 我的问题是如何在一个线程中轮询消息队列和套接字?

【问题讨论】:

【参考方案1】:

恕我直言,一个更简洁的实现是一个线程监听套接字并将所有传入的请求放入消息队列中,一个或多个线程同步或异步地从消息队列中读取并处理传入的消息。见 Java NIO

【讨论】:

以上是关于使用单线程等待消息队列和套接字的主要内容,如果未能解决你的问题,请参考以下文章

基于条件变量的消息队列

消息队列库——ZeroMQ

js异步——事件循环和消息队列

Win32,等待主消息队列中的线程?

同步异步和Event loop事件循环

分布式技术之 单线程消息队列 SingularUpdateQueue