不好意思!!漏了类DThread!!补全的:
import java.io.*;
import java.util.Date;class ThreadMethods //结果不对啊?????
{
public static void main(String[] args) throws IOException
{
PipedInputStream pisFromAnn=new PipedInputStream();
PipedOutputStream posToTom=new PipedOutputStream(pisFromAnn); PipedInputStream pisFromTom=new PipedInputStream();
PipedOutputStream posToAnn=new PipedOutputStream(pisFromTom);
DThread Tom=new DThread (pisFromAnn,posToTom);
DataInputStream disFromTom=new DataInputStream(pisFromTom);
DataOutputStream dosToTom=new DataOutputStream(posToTom); System.out.println("Ann:Tom,你在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom快做功课啦!");
Tom.start();
System.out.println("[Tom]"+disFromTom.readUTF());
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
try{
System.out.println("Ann:Tom还不快点做功课?");
Tom.start();
}
catch(IllegalStateException e){
System.out.println("Ann:哇!原来Tom已经在做功课了!");
dosToTom.writeUTF ("对不起.....我不是故意催你的....");
}
System.out.println("[Tom]"+disFromTom.readUTF());
System.out.println("Ann:Tom,先休息一下吧!! ");
Tom.interrupted();
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom,可以继续做功课了....");
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom好像是睡着了....");
System.out.println("Ann:现在的时刻是:"+(new Date()));
try{
Tom.join();
}
catch(InterruptedException e){}
System.out.println("Ann:Tom ,你终于睡醒了!");
System.out.println("Ann:现在已经是:"+(new Date()));
System.out.println("Ann:居然睡得这么久....");
}
} class DThread extends Thread{
private DataInputStream disFromAnn;
private DataOutputStream dosToAnn; DThread (PipedInputStream FromAnn,PipedOutputStream ToAnn){
super();
disFromAnn=new DataInputStream (FromAnn);
dosToAnn=new DataOutputStream (ToAnn);
}
public void run(){
try{
dosToAnn.writeUTF("等一下嘛!!...");
System.out.println("Tom:知道啦,我开始做功课了");
System.out.println("[Ann]"+disFromAnn.readUTF());
dosToAnn.writeUTF("好啦!,原谅你就是啦 !!...");
try{
System.out.println("Tom:啊...我困了..我睡一下下....");
sleep(5000);
}
catch(InterruptedException e){}
System.out.println("Tom:嗯,....睡得真舒服!");
}
catch(IOException e){}
}
}
import java.io.*;
import java.util.Date;class ThreadMethods //结果不对啊?????
{
public static void main(String[] args) throws IOException
{
PipedInputStream pisFromAnn=new PipedInputStream();
PipedOutputStream posToTom=new PipedOutputStream(pisFromAnn); PipedInputStream pisFromTom=new PipedInputStream();
PipedOutputStream posToAnn=new PipedOutputStream(pisFromTom);
DThread Tom=new DThread (pisFromAnn,posToTom);
DataInputStream disFromTom=new DataInputStream(pisFromTom);
DataOutputStream dosToTom=new DataOutputStream(posToTom); System.out.println("Ann:Tom,你在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom快做功课啦!");
Tom.start();
System.out.println("[Tom]"+disFromTom.readUTF());
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
try{
System.out.println("Ann:Tom还不快点做功课?");
Tom.start();
}
catch(IllegalStateException e){
System.out.println("Ann:哇!原来Tom已经在做功课了!");
dosToTom.writeUTF ("对不起.....我不是故意催你的....");
}
System.out.println("[Tom]"+disFromTom.readUTF());
System.out.println("Ann:Tom,先休息一下吧!! ");
Tom.interrupted();
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom,可以继续做功课了....");
System.out.println("Ann:Tom在做功课吗?"+Tom.isAlive());
System.out.println("Ann:Tom好像是睡着了....");
System.out.println("Ann:现在的时刻是:"+(new Date()));
try{
Tom.join();
}
catch(InterruptedException e){}
System.out.println("Ann:Tom ,你终于睡醒了!");
System.out.println("Ann:现在已经是:"+(new Date()));
System.out.println("Ann:居然睡得这么久....");
}
} class DThread extends Thread{
private DataInputStream disFromAnn;
private DataOutputStream dosToAnn; DThread (PipedInputStream FromAnn,PipedOutputStream ToAnn){
super();
disFromAnn=new DataInputStream (FromAnn);
dosToAnn=new DataOutputStream (ToAnn);
}
public void run(){
try{
dosToAnn.writeUTF("等一下嘛!!...");
System.out.println("Tom:知道啦,我开始做功课了");
System.out.println("[Ann]"+disFromAnn.readUTF());
dosToAnn.writeUTF("好啦!,原谅你就是啦 !!...");
try{
System.out.println("Tom:啊...我困了..我睡一下下....");
sleep(5000);
}
catch(InterruptedException e){}
System.out.println("Tom:嗯,....睡得真舒服!");
}
catch(IOException e){}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货