前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题97:Thead类中interrupt()、interrupted()、isInterrupted()区别是什么?

面试题97:Thead类中interrupt()、interrupted()、isInterrupted()区别是什么?

作者头像
爪哇缪斯
发布2023-05-10 09:44:36
1930
发布2023-05-10 09:44:36
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯
  • 这3个方法都是用于线程中断操作或判断的。那么,严格地讲,线程中断并不会是线程立即退出,而是给线程发送一个通知,告知目标线程有人希望你退出了,至于目标线程接到通知后如何处理,则完全由目标线程自行决定。
  • 三个方法的区别:
  • interrupt():中断线程,并添加中断状态。
  • interrupted():判断是否被中断,并清除当前中断状态。
  • isInterrupted():只是判断是否被中断,并不清除当前中断状态。
  • 实例一:我们利用interrupt()来打断线程
  • 实例二:利用interrupted()清除中断状态
  • 实例三:由于异常清除了中断状态,所以isInterrupted方法会返回false,那么无法通过break跳出无限循环。
  • 实例四:异常清除了中断状态,所以再次执行interrupt()添加中断状态,这样isInterrupted方法会返回true,执行break跳出循环。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档