线程 wait()等待后,可以调用 notify()唤醒线程, 如果 notify()唤醒的过早,在等待之前就调用了 notify()可能会打乱程序正常的运行逻辑。因为start的方法他只是告诉线程调度器我准备好了,什么时候调用由线程调度器决定。解决方法是可以设置线程标志。
代码例示如下:
package com.company.notify;
public class TestingIsTooEarly {
static boolean isFirst=true;//定义静态变零是否是作为第一个运行的线程标志
public static void main(String[] args) {
final Object lock=new Object()