LockSupport 是一个线程阻塞工具, 可以在线程内任意位置让线程阻塞.
和Thread.suspend()相比, 它弥补了由于resume()在前发生, 导致线程无法继续执行的情况.
和Object.wait()相比, 它不需要先获取某个对象的锁, 也不会抛出 InterruptedException异常, 只会默默返回.
1. API
- park & unpark
它为每一个线程准备了一个许可, 如果许可可用, 那么 park()函数会立即返回, 并且消费这个许可 (也就是将许可变为不可用) , 如果许可不可用, 就会阻塞. unpark() 则使得一个许可变为可用