Java IPC的最佳实践

12 java multithreading

什么是多线程Java应用程序中进程间通信的最佳方法.

它应该是高性能的(所以没有JMS)易于实现和可靠,因此对象和数据只能绑定到一个线程?

欢迎任何想法!

Stu*_*son 15

你能澄清一下吗?您是指单个JVM中的IPC吗?(多个线程,是的,但在操作系统级别只有一个进程.)或者你的意思是多个JVM?(真正的操作系统级进程间通信.)

如果它是第一个,那么可能是java.util.concurrent之外的东西,比如ConcurrentLinkedQueue就可以了.(我通过java.util.concurrent中的类在我的线程中传递消息并成功.)

如果是后者,那么我将只是猜测并建议看一下RMI,虽然我认为它没有资格完全可靠 - 你必须管理那些更多的'动手'之类的.

  • IPC是“进程间通信”,java.util.concurrent中的类是为单个进程的多个线程设计的,而不是为不同进程设计的。 (2认同)
  • @Hugo:谢谢你的-1。不要太沉迷于给事物贴上线程或进程的标签。一旦你稍微抽象一下,线程和进程在逻辑上是相同的;必须处理同样的问题。归根结底,这只是一个实施问题。因此我的回答具有双重性。 (2认同)

Bor*_*zic 9

假设场景1 JVM,那么多个线程确实是java.util.concurrent的地方,特别是各种Queue实现.然而,除此之外的抽象可能很好,并且Jetlang看起来非常有趣,轻量级Java消息传递.