使用Thread实现双线程的同步实现。
双线程:使用notify();可以达到唤醒另一个线程。
多线程(>=3):需使用notifyAll():来唤醒所有的线程。
class buffer{
private boolean isEmpty = true;
public buffer(){}
public void put_set(boolean judge){
while(isEmpty != judge){
try{
wait();
}
catch(Exception e){
System.out.println();
}
}
isEmpty = !isEmpty;
notify();
}
}
class p1 extends Thread{
private buffer b;
public p1(){}
private boolean flag;
public p1(buffer ba,boolean bo){
b = ba;
flag = bo;
}
public void run(){
synchronized(b){
for(int i = 1; i <= 26; i++){
b.put_set(flag);
if(flag){
System.out.print(i + ".");
}
else{
System.out.print((char)(i+96)+ " ");
}
}
}
}
}
class test1{
public static void main(String [] dfs){
buffer b = new buffer();
new p1(b,true).start();
new p1(b,false).start();
}
}