线程间的Java消息传递
我是Java新手,在线程消息传递方面遇到了一个问题。 我这里的意思是-我有4个线程,一个线程从网络读取消息,并根据消息的类型将消息传递给解析器线程或数据库线程。数据库线程执行一些操作,并且必须将消息发送回第一个将其放入套接字的网络线程。类似地,解析器线程还执行一些操作,并根据结果将消息发送回网络线程或数据库线程。 我尝试过的事情-线程间的Java消息传递,java,multithreading,message-queue,Java,Multithreading,Message Queue,我是Java新手,在线程消息传递方面遇到了一个问题。 我这里的意思是-我有4个线程,一个线程从网络读取消息,并根据消息的类型将消息传递给解析器线程或数据库线程。数据库线程执行一些操作,并且必须将消息发送回第一个将其放入套接字的网络线程。类似地,解析器线程还执行一些操作,并根据结果将消息发送回网络线程或数据库线程。 我尝试过的事情- 我已经读过关于notify()wait()for thread communication的内容,这对我的情况没有帮助,因为我需要一对一的消息传递它的not brao
我已经读过关于notify()wait()for thread communication的内容,这在我的情况下没有帮助 需要帮忙吗 我读过关于concurrentqueues blockingqueues的文章-因为这不是一个理想的生产者-消费者问题,其中一个线程正在生成MSG,而其他线程正在从中读取-我不能使用它。使用它就像我需要每个通信通道有5个队列 然后呢?如果向程序中添加更多队列或更多线程使这些线程所做的工作更简单,或者使这些队列的解释更容易理解,那么这是一件坏事吗
请注意
wait()
和notify()
。这些都是低层次的方法,旨在以一种非常具体的方式来建立更高层次的机制。我不知道标准JavaBlockingQueue
实现是否实际使用了wait()
和notify()
,但要实现一个实际使用了该机制的BlockingQueue
并不难。因此,如果BlockingQueue
解决了您的问题,那么这意味着wait()
和notify()
解决了您的问题。你只是没有看到解决办法
事实上,我愿意打赌
wait()
和notify()
可以用来解决任何需要一个线程等待另一个线程的问题。这只是看看你还需要围绕它们构建什么的问题。你可能想试试基于actor的消息传递框架,比如akka。看起来你需要RxJava。看看这里
network->db,
db->network,
parser->network,
parser->db