Java IPC的最佳做法

时间:2020-03-05 18:49:54  来源:igfitidea点击:

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

它应该是高性能的(因此请不要使用JMS),易于实现且可靠,因此
对象和数据只能绑定到一个线程?

任何想法欢迎!

解决方案

回答

你能澄清一下吗?我们是指单个JVM中的IPC吗? (是的,有多个线程,但是在OS级别只有一个进程。)或者我们是说多个JVM? (以及真正的OS级进程间通信。)

如果是第一个,那么可能是java.util.concurrent之外的东西(例如ConcurrentLinkedQueue)可以解决问题。 (我成功通过java.util.concurrent中的类在线程之间传递了消息。)

如果是后来的话,那么我只是猜测并建议我们看一下RMI,尽管我认为它没有完全可靠的资格-我们必须像其他一些"动手操作"那样进行管理。

回答

我建议研究整个java.util.concurrent包,该包具有用于处理并发性的多个类以及线程之间的不同通信方式。一切都取决于我们要实现的目标,因为问题相当笼统。

回答

假设场景1是JVM,则实际上确实是多个线程,尤其是各种Queue实现,在这里都是java.util.concurrent。但是,在此之上的抽象可能很好,并且Jetlang看起来非常有趣,轻量级的Java消息传递。