1
辽宁工业大学课程设计说明书(论文)
第2章课程设计内容
2.1课程设计主要内容1.线程的含义:线程是进程执行过程中产生的多条执行线索,是比进程单位更小的执行单位,在形式上同进程十分相似——都是用一个顺序执行的语句序列来完成特定的功能。2.本程序主要是利用线程和管道的输入、输出流实现数据的接收及发送。3.应用IO包中所有类,通过此包完成管道数据的输入、输出以及随机数的产生。4.编写两个线程子类,一个子类用于管道输出,一个用于管道输入。5.调用库函数中的Math类生成随机数。6.向管道输出流发送5个0-20之间的随机整数,管道输入流接收管道中传过来的5个随机数。7.简单叙述步骤:(1)线程子类ThreadOut,用来创建一个管道输出流线程。创建该类的对象并启动线程后run方法将执行。run方法的功能是生成5个0-20之间的随机整数,并输出到管道中,每次向管道中写入一个整数后休眠1000秒。(2)线程子类ThreadIn,用来创建一个管道输入流线程。覆盖线程类Thread的run方法,run方法的功能是读取从管道中接收到的5个随机整数,求它们的和并输出到屏幕上。(3)主类TestPipedStream,用来测试管道流的数据传输。创建没连接的管道输入,输出流in,out连接管道流iut,in创建输出流线程to,输入流线程ti。启动线程,实现线程间
通信,通过管道流传输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)