LockSupport的park和unpark的基本使用,以及对线程中断的响应性
ps:
- LockSupport.park(Object ) 仅仅只是做一个标识,方便排查问题,阻塞的线程就是当前线程
- 类似于二元信号量(只有一个许可可用),不同点是:初始时该许可不可用
- unpark可调用多次,但是只会增加最多一个许可
unpark -> unpark -> park -> park :将会阻塞 - 注意方法原型: void park(Object blocker), 返回void,阻塞时可以响应中断信号,但是仅仅是方法return,不会抛出InterruptedException
- 底层调用unsafe实现