📄 pipestreamtest.java
字号:
import java.util.*;
import java.io.*;
public class PipeStreamTest
{
public static void main(String args[])
{
try
{
/*建立管道*/
PipedOutputStream pout = new PipedOutputStream();
PipedInputStream pin = new PipedInputStream(pout);
/*构造线程*/
Producer pro = new Producer(pout);
Consumer con = new Consumer(pin);
pro.start();
con.start();
}
catch(IOException e)
{
System.out.println("Error: "+e);
}
}
}
class Producer extends Thread
{
private DataOutputStream out;
private Random rand = new Random();
private int count=0;
public Producer(OutputStream os)
{
out = new DataOutputStream(os);
}
public void run()
{
while(true)
{
try
{
double num = rand.nextDouble();
count++;
System.out.println("The "+count+"th double produced by producer is: "+num+"\r\n");
out.writeDouble(num);
out.flush();
sleep(Math.abs(rand.nextInt()%400));
}
catch(Exception e)
{
System.out.println("Error: "+e);
}
}
}
}
class Consumer extends Thread
{
private DataInputStream in;
private int count = 0;
public Consumer(InputStream is)
{
in = new DataInputStream(is);
}
public void run()
{
while(true)
{
try
{
double num = in.readDouble();
count++;
System.out.println("The "+count+"th double consumed by consumer is: "+num+"\r\n");
}
catch(IOException e)
{
System.out.println("Error: "+e);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -