LockSupport简介

1月 11, 2023 |

LockSupport简介

java并发包中很多类都基于LockSupport实现锁,而Thread.suspend()方法已经被标记为过时了。LockSupportsemaphore实现机制,拥有一个许可(permit),这样LockSupport.park()LockSupport.unpark()就没有Thread.suspend()Thread.resume()的顺序问题(Thread.resume()要是发送在Thread.suspend()之前,那么这个线程就恢复不了了),而LockSupport基于许可,unpark将许可数设置为1,只要许可为1那么park就直接返回。

以下情况LockSupport.park都会返回

  1. 许可可用
  2. 被中断
  3. timeout

参考

locksupport-how-does-it-work

Posted in: java基础

Comments are closed.