一、进程通信
进程是指运行中的程序,进程的任务就是执行程序中的代码。下面的EchoPlayer类是一个独立的Java程序,它可以在任意一台安装了JDK的主机上运行。EchoPlayer类不断读取用户从控制台输入的任意字符串XXX,然后输出echo:XXX。如果用户输入的字符串为“bye”,就结束程序。EchoPlayer类的代码如下:
import java.io.*;
public class EchoPlayer {
public String echo(String msg) {
return "echo:"+msg; }
public void talk()throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String msg=null;
while((msg=br.readLine())!=null){
System.out.println(echo(msg));
if(msg.equals("bye")) //当用户输入"bye",结束程序
break;
}
}
public static void main(String arg[])throws IOException{
new EchoPlayer().talk();
}
}
运行“java EchoPlayer”命令,就启动了EchoPlayer进程,该进程执行EchoPlayer类的main()方法。图1演示了EchoPlayer进程的运行过程,它从本地控制台中获得标准输入流和标准输出流。本地控制台为用户提供了基于命令行的用户界面,用户通过控制台与EchoPlayer进程交互。

图1 EchoPlayer进程的运行过程
|