LockSupport提供park()和unpark()方法实现线程阻塞和唤醒.底层实现是通过sun.misc.Unsafe的park和unpark. 关于sun.misc.Unsafe的说明请参见我的另外一篇博客. 核心就是通过一个信号量(permit)实现的,0阻塞,1继续执行. park时可以指定blocker以及阻塞时长或者阻塞到什么时间点,通过UNSAFE.park第一个boolean参数决定,true指定时间,false指定时长. 可以先执行unpark,再执行part的时候发现之前…