某个线程执行LOCK.wait()后,会将自己放置(LOCK的)wait set中(并释放wait锁),LOCK是一个普通的对象,那么是不是所有的对象都有一个wait set,是的,可以这么理解的。
总结几点:
- 所有的对象都会有一个wait set,用来存放调用该对象wait方法之后进行block状态的线程。
- 线程被notify之后,不一定立即得到执行,这是因为可能会抢不到LOCK锁。
- 线程从wait set中唤醒的顺序不一定是FIFO。
- 线程被唤醒后,必须重新获取锁。
某个线程执行LOCK.wait()后,会将自己放置(LOCK的)wait set中(并释放wait锁),LOCK是一个普通的对象,那么是不是所有的对象都有一个wait set,是的,可以这么理解的。
总结几点: