基于核心源码和个人思考——LockSupport

182 阅读1分钟

LockSupport

提供了对锁的底层支持,包括阻塞和恢复等方法。该类的构造函数事私有化的,不能创建实例。

接口

  • void unpark(Thread thread) 恢复线程执行
  • void park(Object blocker) 让指定线程阻塞
  • void parkNanos(Object blocker, long nanos) 指定超时的阻塞,block对象是阻塞的对象,方便生成日志时追查。
  • void parkUntil(Object blocker, long deadline) 阻塞到指定时间
  • void park() 阻塞当前线程
  • void parkNanos(long nanos)
  • void parkUntil(long deadline)
  • int nextSecondarySeed()

Blocker

这个对象是用来记录线程被阻塞时被谁阻塞的,用于线程监控和分析工具来定位原因的。

  • Object getBlocker(Thread t) 获取阻塞对象
  • void setBlocker(Thread t, Object arg) 设置阻塞的对象

相关链接