LockSupport与线程中断

1 LockSupport是什么

LockSupport是用来创建锁和其他同步类的基本阻塞原语。

park方法可以阻塞线程,unpark方法可以唤醒线程。与object的wait和notify不同的是,不需要synchonized的限制,没有先后顺序的限制。

2 线程中断

线程不应该被其他线程中断,应该自己中断。

线程的三个中断方法

interrupt方法:通知目标线程中断,也就是设置目标线程的中断标记为ture,不做其他处理的话,线程还会继续运行。

isInterrupted方法: 判断线程是否中断

interrupeted方法:是静态方法,返回线程当前的中断状态,并且会清除中断标记。

 

3细节点

如果线程处于被阻塞状态(例如处于sleep, wait, join 等状态),在别的线程中调用当前线程对象的interrupt方法,
那么线程将立即退出被阻塞状态,并抛出一个InterruptedException异常。

try cache时,线程中断标记会被清除,如果需要中断,需要进行Thread.currentThread().interrupt(),重新设置中断标记。

 

上图

 

posted @   余明星  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示