首页 > 技术文章 > 线程阻塞工具:LockSupport

shujiying 2019-11-16 22:57 原文

1 LockSupport 类使用类似信号量的机制,它为每一个线程准备了一个许可,如果许可可用,那么park()方法会立即返回,并且消费这个许可,如果许可不可用,就会阻塞,

而unpark()方法则使得一个许可变为可用。

  这一个特点使得:即使unpark(0方法操作发生在park()方法之前,它也可以使下一次的park()方法操作立即返回

同时,park()方法的挂起状态不会像suspend()方法那样还给出一个令人费解的Runnable状态,它会给出一个非常明确的WAITING状态

2 LockSupport.park()还支持中断影响。但是并不会抛出  InterruptedException异常,它只会默默会烦,但是我们可以从Thread.interrupted()等发放中获得中断标记

推荐阅读