您的位置:首页 > 其它

一段利用管道的多线程程序

2005-12-02 09:44 218 查看
import java.io.*;

public class PipeIODemo1{
public static void main(String[] args) throws IOException{
//创建一个管道输出流对象
PipedWriter out=new PipedWriter();

//创建一个管道输入流对象
PipedReader in=new PipedReader();
//把管道输入流对象和管道输出流对象联接起来
in.connect(out);

//以上2个语句等效于
//PipedReader in=new PipedReader(out);

OutThread objOut=new OutThread(out);
InThread objIn=new InThread(in);
objOut.start();
objIn.start();

try{
objOut.join();
objIn.join();
}catch (InterruptedException e){}

System.out.println();
System.out.println("Run Completed!!");
}
}

//定义一个写线程类
class OutThread extends Thread{
private Writer out;

public OutThread(Writer out){
this.out=out;
}

public void run(){
try{
try{
for(char c='A'; c<='Z'; c++)
out.write(c);
}finally{
out.close();
}
}catch(IOException e){
getThreadGroup().uncaughtException(this, e);
}
}
}

class InThread extends Thread{
private Reader in;

public InThread(Reader in){
this.in=in;
}

public void run(){
int ch;
try{
try{
while ((ch=in.read())!=-1)
System.out.print((char)ch);
}finally{
in.close();
}
}catch(IOException e){
getThreadGroup().uncaughtException(this, e);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: