详解线程interrupt()方法
线程的interrupt()方法只是设置线程的中断标记,当对处于阻塞状态的线程调用interrupt方法时(处于阻塞状态的线程是调用sleep,wait,join的线程),会抛出InterruptException异常,而这个异常会清除中断标记。正常运行的线程调用interrupt()不会清除中断标记。
通过interrupt()我们可以优雅的结束一个线程;有人会说stop()也可以呀,但是stop会出现一种情况,如果线程锁住了共享资源,那么当它调用stop被杀死后就再也没有机会释放锁了,其它线程将永远无法获取,所有这种结束线程的方式是不安全的也是不建议的。
优雅的结束线程是指,当线程死亡的时候,它可以做一些善后的事情。我们通过如下的代码就可以优雅的结束一个线程。packagecom。zd。demo;publicclassTest01{publicstaticvoidmain(String〔〕args){RunnablerunnablenewRunnable(){publicvoidrun(){while(true){booleanbThread。currentThread()。isInterrupted();如果为真,就结束线程if(b){System。out。println(执行善后工作。。。);break;}try{Thread。sleep(1000);System。out。println(线程执行业务功能);}catch(InterruptedExceptione){e。printStackTrace();Thread。currentThread()。interrupt();}}}};Threadt1newThread(runnable,t1);t1。start();try{Thread。sleep(4000);t1。interrupt();}catch(InterruptedExceptione){e。printStackTrace();}}}C:ProgramFilesJavajdk1。8。0101binjavajavaagent:D:BaiduNetdiskDownloadIDEAIDEA安装包ideaIU2017。3。3。winlibideart。jar6134:D:BaiduNetdiskDownloadIDEAIDEA安装包ideaIU2017。3。3。winbinDfile。encodingUTF8classpathC:ProgramFilesJavajdk1。8。0101jrelibcharsets。jar;C:ProgramFilesJavajdk1。8。0101jrelibdeploy。jar;C:ProgramFilesJavajdk1。8。0101jrelibextaccessbridge64。jar;C:ProgramFilesJavajdk1。8。0101jrelibextcldrdata。jar;C:ProgramFilesJavajdk1。8。0101jrelibextdnsns。jar;C:ProgramFilesJavajdk1。8。0101jrelibextjaccess。jar;C:ProgramFilesJavajdk1。8。0101jrelibextjfxrt。jar;C:ProgramFilesJavajdk1。8。0101jrelibextlocaledata。jar;C:ProgramFilesJavajdk1。8。0101jrelibextashorn。jar;C:ProgramFilesJavajdk1。8。0101jrelibextsunec。jar;C:ProgramFilesJavajdk1。8。0101jrelibextsunjceprovider。jar;C:ProgramFilesJavajdk1。8。0101jrelibextsunmscapi。jar;C:ProgramFilesJavajdk1。8。0101jrelibextsunpkcs11。jar;C:ProgramFilesJavajdk1。8。0101jrelibextzipfs。jar;C:ProgramFilesJavajdk1。8。0101jrelibjavaws。jar;C:ProgramFilesJavajdk1。8。0101jrelibjce。jar;C:ProgramFilesJavajdk1。8。0101jrelibjfr。jar;C:ProgramFilesJavajdk1。8。0101jrelibjfxswt。jar;C:ProgramFilesJavajdk1。8。0101jrelibjsse。jar;C:ProgramFilesJavajdk1。8。0101jrelibmanagementagent。jar;C:ProgramFilesJavajdk1。8。0101jrelibplugin。jar;C:ProgramFilesJavajdk1。8。0101jrelibresources。jar;C:ProgramFilesJavajdk1。8。0101jrelibrt。jar;C:UserszhaodongIdeaProjectsboot1demoargetclasses;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootstarterweb2。5。5springbootstarterweb2。5。5。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootstarter2。5。5springbootstarter2。5。5。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringboot2。5。5springboot2。5。5。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootautoconfigure2。5。5springbootautoconfigure2。5。5。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootstarterlogging2。5。5springbootstarterlogging2。5。5。jar;C:Userszhaodong。m2repositorychqoslogbacklogbackclassic1。2。6logbackclassic1。2。6。jar;C:Userszhaodong。m2repositorychqoslogbacklogbackcore1。2。6logbackcore1。2。6。jar;C:Userszhaodong。m2repositoryorgapachelogginglog4jlog4jtoslf4j2。14。1log4jtoslf4j2。14。1。jar;C:Userszhaodong。m2repositoryorgapachelogginglog4jlog4japi2。14。1log4japi2。14。1。jar;C:Userszhaodong。m2repositoryorgslf4jjultoslf4j1。7。32jultoslf4j1。7。32。jar;C:Userszhaodong。m2repositoryjakartaannotationjakarta。annotationapi1。3。5jakarta。annotationapi1。3。5。jar;C:Userszhaodong。m2repositoryorgyamlsnakeyaml1。28snakeyaml1。28。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootstarterjson2。5。5springbootstarterjson2。5。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksoncorejacksondatabind2。12。5jacksondatabind2。12。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksoncorejacksonannotations2。12。5jacksonannotations2。12。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksoncorejacksoncore2。12。5jacksoncore2。12。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksondatatypejacksondatatypejdk82。12。5jacksondatatypejdk82。12。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksondatatypejacksondatatypejsr3102。12。5jacksondatatypejsr3102。12。5。jar;C:Userszhaodong。m2repositorycomfasterxmljacksonmodulejacksonmoduleparameternames2。12。5jacksonmoduleparameternames2。12。5。jar;C:Userszhaodong。m2repositoryorgspringframeworkbootspringbootstartertomcat2。5。5springbootstartertomcat2。5。5。jar;C:Userszhaodong。m2repositoryorgapacheomcatembedomcatembedcore9。0。53omcatembedcore9。0。53。jar;C:Userszhaodong。m2repositoryorgapacheomcatembedomcatembedel9。0。53omcatembedel9。0。53。jar;C:Userszhaodong。m2repositoryorgapacheomcatembedomcatembedwebsocket9。0。53omcatembedwebsocket9。0。53。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringweb5。3。10springweb5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringbeans5。3。10springbeans5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringwebmvc5。3。10springwebmvc5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringaop5。3。10springaop5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringcontext5。3。10springcontext5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringexpression5。3。10springexpression5。3。10。jar;C:Userszhaodong。m2repositoryorgslf4jslf4japi1。7。32slf4japi1。7。32。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringcore5。3。10springcore5。3。10。jar;C:Userszhaodong。m2repositoryorgspringframeworkspringjcl5。3。10springjcl5。3。10。jarcom。zd。demo。Test01线程执行业务功能线程执行业务功能线程执行业务功能java。lang。InterruptedException:sleepinterrupted执行善后工作。。。atjava。lang。Thread。sleep(NativeMethod)atcom。zd。demo。Test011。run(Test01。java:20)atjava。lang。Thread。run(Thread。java:745)Processfinishedwithexitcode0
京东健康与西门子医疗达成合作目标打通患者端与非公医疗机构端IT之家6月30日消息根据京东健康的消息,今天京东健康与医疗科技公司西门子医疗通过线上签约仪式签署合作协议。据介绍,京东健康与西门子医疗此次合作的目标,是打通患者端与非公……
用诚信来造句诚信是一种非常复杂的社会现象。下面内容由小编为大家分享用诚信来造句,一起来看看吧!1)他不是只做赔本生意的傻瓜,而是诚信经商的典范。2)诚信就是说话算话,一言九鼎,……
日本推出共享办公室,使用15分钟约10元IT之家11月24日消息据梨视频报道,近日日本铁路在东京站正式开设共享办公室;收费方面,使用15分钟的价格为150日元(约合人民币9。7元)。据了解,日本铁路官方目前东京……
阿里巴巴钉钉上线员工健康管理服务,向企业免费开放1月28日晚间消息,新浪科技获悉,阿里巴巴旗下钉钉近日上线员工健康服务,可对组织健康管理进行在线化、数字化,该功能面向所有企业组织免费开放。据介绍,该功能包括:每日报平安……
菜鸟推出回箱计划,回收快递纸箱IT之家11月4日消息根据菜鸟驿站官方微博的消息,菜鸟推出了回箱计划,将回收快递纸箱。官方介绍,今年全国7。5万个快递站点加入了菜鸟回箱计划。用户收到快递后,纸箱不要扔,……
高中语文说木叶优秀说课稿一、教材分析诗歌是激情和想像的艺术。只有用你的激情与想像去品读,诗的感觉才会喷涌而出。读林庚先生的《说木叶》,我首先想到这样一段话。诚如林先生所言,我们的古诗人是敏感而有……
闲鱼2月份冻结涉欺诈用户3。6万个,处理色情低俗类商品9303月5日消息,日前,闲鱼对外发布最新一期网络生态治理专项行动公告,2月3日至3月2日冻结涉欺诈用户3。6万个;处理色情低俗类商品9300余件,冻结账号2700余个,处理网红加特……
微博禁言2146个违规账号因持续发布人身攻击内容IT之家10月22日消息日前,新浪微博社区管理官方发布公告称,2019年9月数据统计显示,共发现有2146个账号持续发布了18万6千条含有人身攻击内容的评论。微博表示,这……
直线的倾斜角和斜率1教学目标(1)了解直线方程的概念。(2)正确理解直线倾斜角和斜率概念。理解每条直线的倾斜角是唯一的,但不是每条直线都存在斜率。(3)理解公式的推导过程,把握过……
鲸优质教学设计范文一、填一填课文写到了鲸很大,为了把这个特点说清楚,作者列举了箐多数字来说明。教师可指导学生读书,画出描写鲸很大的有关数字,然后完成如下填空练习:鲸是一种很大的动物,……
2021福布斯中国最佳雇主榜单发布B站京东等上榜IT之家6月28日消息今日福布斯中国发布2021福布斯中国最佳雇主年度评选主榜单及子榜单,这是福布斯中国第一年推出中国最佳雇主系列评选。榜单显示,百济神州、东方雨虹、合景……
解决出租车高速ETC报销问题,深圳首创出租车ETC方案正式上11月15日,今天,深圳市出租车智慧出行平台暨全国首创出租车ETC方案正式上线,该方案由微信支付联合深圳市交通运输局、深圳市税务局及高灯ETC助手共同打造,结合微信支付的开放能……