1、wait方式是让当前持有锁的线程进入等待队列(不是阻塞队列),调用了wait方法后,当前线程就不会执行wait之后的代码逻辑了,所以notify方法必须在wait方法之前。
2、需要在循环结束后,加上notify,因为当其中一个线程正常执行完后,另一个线程一定还处于等待队列,所以最后需要被唤醒,如果不写,则虽然能正常打印出结果,但是程序不会结束。
3、要保证两个线程的开始顺序,因为thread.start方法,并不是先调用就一定是先调用的线程先执行,所以可以用countdownlatch来保证打印顺序的开始。
1、wait方式是让当前持有锁的线程进入等待队列(不是阻塞队列),调用了wait方法后,当前线程就不会执行wait之后的代码逻辑了,所以notify方法必须在wait方法之前。
2、需要在循环结束后,加上notify,因为当其中一个线程正常执行完后,另一个线程一定还处于等待队列,所以最后需要被唤醒,如果不写,则虽然能正常打印出结果,但是程序不会结束。
3、要保证两个线程的开始顺序,因为thread.start方法,并不是先调用就一定是先调用的线程先执行,所以可以用countdownlatch来保证打印顺序的开始。
举报