一:LockSupport的介绍
在Condition的API中,我们看到其中阻塞和唤醒的方法都用到了park()和unpark()方法,这其实就是工具类LockSupport提供的对于指定线程的操作方法。
对于LockSupport的底层实现大部分呢都是借助于原子类的实现类UnSafe,这个类是java中允许直接操作指针的(所以命名为:UNSafe),所以关于其底层实现会在后续说明。
二:相关API
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL6lFRPFTV65UMNpHW4Z0MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL5kzNzMDMzMTMzIjMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
三:使用说明
LockSupport的核心API只有2个:park()阻塞当前线程,unpark()唤醒当前线程。其中方法是有一个只有(0,1)的信号量控制(又叫许可证),当调用unpark()时许可证置为1,否则置为0.。