packagemy_example;/***不同线程之间的通信**/classperson{privateStringname;privateStringsex;booleanflag=false;publicsynchronizedvoidset_information(Stringname,Stringsex){if...
package my_example;
/**
* 不同线程之间的通信
* */
class person{
private String name;
private String sex;
boolean flag=false;
public synchronized void set_information(String name,String sex)
{
if(flag){
try{this.wait();}catch(Exception e){System.out.println("wrony");}
this.name=name;
this.sex=sex;
flag=true;
this.notify();
}
}
public synchronized void sent_information(){
if (!flag){
try{this.wait();}catch(Exception e){System.out.println("wrony");}
System.out.println(name+" "+sex);
flag=false;
this.notify();
}
}
}
class Input implements Runnable{
private person p;
private boolean x=true;
Input (person p){
this.p=p;
}
public void run(){
while(true){
if(x){
p.set_information("Mike","man");
x=false;}
else{
p.set_information("Bee", "woman");
x=true;}
}
}
}
class Output implements Runnable{
private person p;
Output(person p){
this.p=p;
}
public void run(){
while(true){
p.sent_information();}
}
}
public class Example_lock {
public static void main(String arg[]){
person p=new person();
new Thread(new Input(p)).start();
new Thread(new Output(p)).start();
}
}
展开