Java多线程之生产者与消费者模式
synchronized版
问题:有2个线程,一个线程+1,一个线程-1,这样循环加减1,10次
public class ThreadWaitNotifyDemo {
private int number = 0;
//此方法实现对number+1操作
public synchronized void increment() throws Exception{
//此处一定要主要使用while判断,不能使用if判断,防止线程间的虚假唤醒
while(number != 0){
this.wait();
}
number++;
System.out.println(Thread.currentThread().getName() + "\t" + number);
this.notifyAll();
}
//此方法实现对number-1操作
public synchronized void decrement() throws InterruptedException{
while(number == 0){
this.wait();
}
number--;
System.out.println(Thread.currentThread().getName() + "\t" + number);
this.notifyAll