动线程,实现线程间通信,通过管道流传输5个int类型的数据。
2
辽宁工业大学课程设计说明书(论文)
2.2概要设计
2.2.1自定义类说明在本程序中根据实际需要,将其定义两个自定义类:管道输出流子类和管道输入流子类,具体分析如下:主类:TestPipedStream管道输出流子类:类名:TheradOutextendsThread类方法:数据输出流和管道输出流连接:PublicThreadOut(PipedOutputStreamout)重写线程方法:publicvoidrun()引用IO包中的数学函数类,产生随机数
WriteInt(datal[i])
类属性:privateint[]datalPrivateDataOutputStreamdos管道输入流子类:类名:ThreadInextendsThread类方法:数据输入流和管道输入流连接:PublicThreadIn(PipedInputStreamin)重写线程方法:publicoidrun()readInt();privateintsum;privateDataInputStreamdis;程序的重要算法及代码片段:创建没有建立连接的输出,输入流,并建立连接。PipedOutputStreamout=newPipedOutputStream();PipedInputStreamin=newPipedInputStream();
3
辽宁工业大学课程设计说明书(论文)
out.connect(in);创建一个没有被连接管道输出流,使用前必须连接到一个管道输入流,同理管道输入流也是,将管道输出流连接到管道输入流in.覆盖线程类Thread的run方法run方法的功能是生成5个0-20之间的随机整数,并输出到管道中,每次向管道中写入一个整数后休眠1000秒。线程的进入点,用来激活线程publicvoidrun(){此程序中有管道
通信流,必须有try...catch语句捕获IO异常try{利用for循环产生5个0-20的随机数,并输出发送的数据。for(inti=0;i
4
辽宁工业大学课程设计说明书(论文)
dos.close();}catch(IOExceptione){捕获异常,抛出异常。System.out.println(e);}}管道的输入方式和输出基本相同。将数据输出流和管道输出流连接,以便向管道发送int类型的数据dos=newDataOutputStream(out)
2.3详细设计//TestPipedStream.java//引入io包中所有类importjava.io.*;publicclassTestPipedStream{//进入主类publicstaticvoidmain(Stringargs[]){//用try...catch捕获IO异常try{//创建没有建立连接的输出流PipedOutputStreamout=newPipedOutputStream();//创建没有建立连接的输入流PipedInputStreamin=newPipedInputStream();//连接两个管道流
5
辽宁工业大学课程设计说明书(论文)
out.connect(in);//实例化ThreadOut和ThreadIn的子类