在多线程 Java 应用程序中,最佳的进程间通信方法是什么?
它应该具有高性能(因此请勿使用 JMS),易于实现和可靠,以便将对象和数据绑定到一个线程。
欢迎提出任何想法!
在多线程 Java 应用程序中,最佳的进程间通信方法是什么?
它应该具有高性能(因此请勿使用 JMS),易于实现和可靠,以便将对象和数据绑定到一个线程。
欢迎提出任何想法!
您能再澄清一下吗?您是指在单个JVM中的IPC吗?(多个线程,但仅限于一个进程的操作系统级别。)还是指多个JVM?(并且真正的操作系统级别的进程间通信。)
如果是前者,那么也许 java.util.concurrent 中的某些东西,比如 ConcurrentLinkedQueue 就可以胜任了。 (我使用 java.util.concurrent 中的类在我的线程之间传递消息取得了成功。)
如果是后者,那我会猜测并建议看看 RMI,尽管我认为它不完全可靠 - 您需要更“手动”地管理它。
我刚刚在github上添加了MappedBus (http://github.com/caplogic/mappedbus),它是一种高效的IPC库,可以使多个Java进程/JVM通过交换消息进行通信,并且使用内存映射文件进行传输。吞吐量已经测得可达到每秒4000万条消息。