- CXQ 是单向链表,被挂起的等待重新竞争锁的哪些线程【通过CAS包装成ObjectWaiter对象】,CAS自旋尝试竞争锁,如果自旋获取到锁则出列,如果自旋失败就进入 entryList 中
- entryList 是双向链表,当entryList为空但是 CXQ 不为空,当拥有 monitor 的当前线程(owner)unlock,将 CXQ 末尾取出一个 ObjectWaiter 放到 EntryList
- waitSet 当前拥有锁monitor的线程主动调用了 wait 方法,那吗这个线程自动进入 waitSet ,其他的线程会成为 owner,其线程notify时从 waitSet 取出放入 entryList 中;