怎样明白wait()、notify()和notifyAll()

程序员 2024-9-15 21:02:06 26 0 来自 中国
wait():让持有该对象锁的线程等候
notify():唤醒恣意一个处于waiting状态的线程
notifyAll():唤醒全部处于waiting状态的线程。
他们之间的关系是:通过调用对象的wait()方法使线程停息运行,通过notify/notifyAll方法唤醒wait()停息的线程。
留意:

  • 调用对象的wait()、notify()、notifyAll()方法必要拥有对象的监督锁,即他们只能在同步方法(块)中利用
  • 调用wait()方法会使线程停息并让出CPU资源,同时开释持有的对象的锁。
  • 多线程利用notify()容易发存亡锁,一样平常利用notifyAll()
  • 被notify()、notifyAll()唤醒后,线程不会立刻实验,而是必要重新竞争对象锁,得到锁的线程可以从wait处继承向下实验。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 22:37, Processed in 0.149107 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表