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(),重新设置中断标记。
上图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现