楼主要学会贴代码public class Demo {
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no args.");
}
}
}像楼主的代码层级多,又没有排版,没法看。
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("no args.");
}
}
}像楼主的代码层级多,又没有排版,没法看。
第一次生产者放东西,OK没问题,
第二次生产者放东西,要wait了。
现在另一个生产者和二个消费者在竞争,
一个消费者得到了锁,执行后让那个等待的生产者复活。现在4个人重新竞争。
其中一个生产者(没有wait的那个)得到了锁,执行了一次。
这时原则上应该让消费者来了。
然而另一个生产者(wait过的那个)又得到了锁,成功执行了一次(从wait()后面开始执行),不进行判断这不安全。
------------------------------------------------------------------------------------------------------------
有一点不太确定,刚唤醒的线程,不知道是不是比那些没有等待过的线程优先级要高点。