package t1;import java.lang.Thread;public class TestNotify{public static void main(String[] args)throws Exception{Object o = new Object();//利用匿名内部类创建线程t1Thread t1 = new Thread(new Runnable(){public void run(){//加锁synchronized(o){for(int i = 1;i <= 52;i ++){System.out.println(i);if(i % 2 == 0){//只要不是最后一次打印,通知其它线程启动if(i != 52)o.notifyAll();//当前线程进入等待状态try{o.wait();}catch(InterruptedException e) {e.printStackTrace();}}}}}});//利用匿名内部类创建线程t2Thread t2 = new Thread(new Runnable(){public void run(){//加锁synchronized(o){for(char ch = \'a\';ch <= \'z\';ch ++){System.out.println(ch);//只要不是最后一次打印,就可以通知其它线程if(ch != \'z\')o.notifyAll();//线程进入等待状态try{o.wait();}catch(InterruptedException e) {e.printStackTrace();}}}}});t1.start();t2.start();}}
wait()方法与notifyAll()方法实例——交替打印数字与字母
未经允许不得转载:爱站程序员基地 » wait()方法与notifyAll()方法实例——交替打印数字与字母