JAVA进程间通信

        之前被一个一直用C/C++的朋友问JAVA是怎么实现进程间通信的,一时语塞。第一反应是多线程的东西,可以传递共享变量之类,然而多进程的还真没有考虑过。

        初步想来,使用在不同机器上的进程通信一般就是RMI、PRC和Web Service之类,也就是底层基于Socket的通信方式。上网查了一下,传统的进程间通信的方式有大致如下几种:

(1)   管道(PIPE)
(2)   命名管道(FIFO)
(3)   信号灯(Semphore)
(4)   消息队列(MessageQueue)
(5)   共享内存(SharedMemory)
(6)   Socket

        由于上面几种通信方式,除了Socket之外,大都是需要靠系统调用来实现的,因此基于JAVA虚拟机运行的JAVA进程貌似都不太好用。说道共享内存,这里查到了一篇关于JAVA NIO 的内存映射文件(MappedByteBuffer)的文章,来自javaeye:Java NIO应用

        牢骚一句,感觉javaeye博客上的代码比cnblogs上的要好看很多。。。希望博客园改进啊~

posted @ 2010-11-12 11:06  funnydavid  阅读(6556)  评论(0编辑  收藏  举报