进程间通信

进程间通讯有三种常用方式: 

1)管道

2)共享内存

3)socket

Socket可以用于不同机器间的进程通信,但代价比较高

java没有共享内存方式,同时Java的管道也只能用于Java线程间的通讯

Java提供管道功能,实现管道通信的类有两组:PipedInputStream和PipedOutputStream或者是PipedReader和PipedWriter。管道通信主要用于不同线程间的通信。

一个PipedInputStream实例对象必须和一个PipedOutputStream实例对象进行连接而产生一个通信管道。PipedOutputStream向管道中写入数据,PipedIntputStream读取PipedOutputStream向管道中写入的数据。一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据。

通过管道实现Java进程间通信方式:

  管道实际上就是一个file结构和一个VFS的索引。Java通过直接读写这个文件,实现pipe通讯效果:

    首先要创建一个管道文件,这一点Java 做不到,要借助C/C++中的mkfifo()函数来实现。

    Java中,使用文件读写的方式打开这两个文件,即可进行读写。

原文地址:https://www.cnblogs.com/zawjdbb/p/7463421.html