notify和notifyAll区别

1.如果线程调用了对象的wait方法,那么线程便会处于该对象的等待池中,等待池中的线程不会去竞争该对象的锁;
2.当有线程调用了notifyAll方法(唤醒所有wait线程)或notify方法(只随机唤醒一个wait线程),被唤醒的线程便会进入该对象的锁池中,所持中的线程回去竞争该对象锁,也就是说,调用了notify后只要一个线程会由等待池进入锁池,而notifyAll会将该对象等待池内的所有线程移动到锁池中,等待锁竞争;
3.所谓唤醒线程,就是将线程由等待池移动锁池,notifyAll调用后,会将全部线程由等待池移动到锁池,然后参与锁池竞争,竞争成功则继续执行,如果不成功则留在锁池等待锁被释放后再次参与竞争。notify只会唤醒一个线程。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容