线程间进行输入/输出通信最常用的方式是”管道“方式。一个线程从管道一端写入数据,另一个线程从管道另一端读出数据。
public class pipedIO {
public static void main(String[] args) throws IOException {
pipeSender sender=new pipeSender();
pipeReceiver receiver=new pipeReceiver(sender);
sender.start();
receiver.start();
}
}
class pipeSender extends Thread
{
private PipedWriter out=new PipedWriter();
public PipedWriter getPipedWriter()
{
return out;
}
public void run()
{
while(true)
{
for(char c='A';c<='Z';c++)
{
try {
out.write(c);
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
}
}
}
class pipeReceiver extends Thread
{
private PipedReader in;
public pipeReceiver(pipeSender sender) throws IOException
{
in=new PipedReader(sender.getPipedWriter());
}
public void run()
{
try {
while(true)
{
System.out.println("read content:"+(char)in.read());
}
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException(e);
}
}
}输出部分结果:
read content:J
read content:K
read content:L
read content:M
read content:N
read content:O

6146

被折叠的 条评论
为什么被折叠?



