本篇文章讲解当线程执行LockSupport.park之后,线程的状态(包括用户级和内核级)以及如何解除线程的状态....,直到某种条件成立,才可以继续运行.
2.如果调用的是java.util.concurrent.locks.LockSupport#parkNanos(java.lang.Object blocker,...long nanos),因为设置了等待时间,所以线程的状态不是WAITING,而是TIMED_WAITING....解除等待
介绍完线程状态,接下来讲解如何解除线程的WAITING/Sleep状态,让线程可以继续运行呢?...学习过AQS的同学应该都看过下面这张图
没有获取到锁的线程,需要进入到同步队列中,通过park进入等待状态.红色的箭头会让线程从等待状态唤醒,继续尝试获取锁.红色箭头的体现就是调用unpark()或者