wait 和 notify 方法需要在 synchronized 代码块中使用,原因如下:1. 线程安全:在多线程环境下,如果多个线程同时访问共享资源,可能会导致数据不一致或其他问题。使用 synchronized 代码块可以确保同一时间只有一个线程能够访问共享资源,从而保证线程安全。2. 确保唤醒的线程是目标线程:notify 方法用于唤醒...
所以这也是为什么wait/notify需要放在Synchronized同步代码块中的原因,有了Synchronized同步锁,就可以实现对多个通信线程之间的互斥,实现条件等待和条件唤醒。 另外,为了避免wait/notify的错误使用,jdk强制要求把wait/notify写在同步代码块里面,否则会抛出IllegalMonitorStateException 最后,基于wait/notify的特性,非常适合实现生...
【Java面试】wait和notify为什么要在synchronized代码块中? 2329 16 1:32 App 【Java面试最新】OpenFeign第一次调用为什么会很慢? 6225 31 34:05:52 App 2024年吃透经典【Java面试八股文+项目场景题】500问,一周学完,让你秋招面试少走99%弯路!绝对是java面试NO.1【存下吧,附80W字面试突击宝典】 1727 8 9...
wait和notify用来实现多线程之间的协调,wait表示让线程进入到阻塞状态,notify表示让阻塞的线程唤醒。 wait和notify必然是成对出现的,如果一个线程被wait()方法阻塞,那么必然需要另外一个线程通过notify()方法来唤醒这个被阻塞的线程,从而实现多线程之间的通信。 在多线程里面,要实现多个线程之间的通信,除了管道流以外,只...
所以这也是为什么wait/notify需要放在Synchronized同步代码块中的原因,有了Synchronized同步锁,就可以实现对多个通信线程之间的互斥,实现条件等待和条件唤醒。 另外,为了避免wait/notify的错误使用,jdk强制要求把wait/notify写在同步代码块里面,否则会抛出IllegalMonitorStateException ...