永发信息网

java main 线程既然被中断 为什么还会运行后面的

答案:3  悬赏:80  手机版
解决时间 2021-01-29 21:58
java main 线程既然被中断 为什么还会运行后面的
最佳答案
我觉得这个例子主要涉及到以下几个问题:
1.对interrupt()、isInterrupted()的理解。为什么BCD要运行呢?因为CPU在转线程又没有阻塞也没有转到其他语句,他当然要往下执行。我的理解是interrupt()是抛出一个消息,“要求”调用他的进程中断,他只是负责发出要求,具体执行由其他语句实现。所以这个语句出现进程不会中断。
2. t.sleep(2000)之前,没有语句实现中断,所以这个状态(或者说这个“中断要求”)一直存在, t.sleep(2000)中响应了这个要求(所以你看执行中间【没有】暂停2秒),所以这个状态(或者说这个“中断要求”)就没有了,在D里面就是false了。
3.对异常的理解。那么是怎么实现中断的效果呢?我的理解是通过异常。比如这个例子,发出中断信号过后,你调用t.sleep(2000),这个t.sleep(2000)里面封装了一个东西,他收到了这个信号就向外抛出了一个InterruptedException ,交给try.catch,通过try.catch对异常的转接,【System.out.println("线程被中断了");】就被执行了。其实我觉得你这里不应该输出,而应该写sleep的,因为人家异常是要求你中断。
4.为什么到最后的D那段会显示线程又运行了?这个是对对语句执行的理解问题。方法执行的返回(或者你理解方法里执行的终止)仅限于以下情况:A.执行return语句;B.所有语句执行完毕;C.抛到方法外的异常(run()除外,因为异常不能抛到run()外面去),这里是有异常,但是他没有抛到外面去,所以要继续执行后面的。
总结一下吧,就是语句都是会被执行的,除非你把他的执行顺序改到其他方向去了,或者按照顺序语句执行终了。改顺序的措施包括return(方法里面的语句执行完毕)和通过异常处理选择。
多看看API吧。我的建议是遇到问题就去看API。 
欢迎采纳。

全部回答
InterruptedException - 如果任何线程中断了当前线程。当抛出该异常时,当前线程的中断状态被清除。
api中的sleep方法有详解
t.interrupt()方法实际上只是设置了一个中断状态,当该线程由于下列原因而受阻时,这个中断状态就起作用了:
(1)如果线程在调用 Object 类的 wait()、wait(long) 或 wait(long, int) 方法,或者该类的 join()、join(long)、join(long, int)、sleep(long) 或 sleep(long, int) 方法过程中受阻,则其中断状态将被清除,它还将收到一个InterruptedException异常。这个时候,我们可以通过捕获InterruptedException异常来终止线程的执行,具体可以通过return等退出或改变共享变量的值使其退出。
(2)如果该线程在可中断的通道上的 I/O 操作中受阻,则该通道将被关闭,该线程的中断状态将被设置并且该线程将收到一个 ClosedByInterruptException。这时候处理方法一样,只是捕获的异常不一样而已
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
电视里面那些歌手,唱歌的时候耳朵里塞的耳机
雯雯钢琴教师怎么去啊,我要去那办事
动漫游艺地址在什么地方,想过去办事
unfold3d怎么使用,有没中文版的?
被公司降职,工资不变,年终奖变少,可以要求
雪白的意思是什么啊?知道的请说下!
冯倩儿童情商训练营地址在什么地方,我要处理
地震地质灾害类型主要有: 地基土液化、软土震
刚带回家的猫咪两个多月可不可以吃化毛膏
钱贷这个平台安全吗?
五亭龙国际玩具城地址在哪,我要去那里办事
启航教育(伊春铁力)地址好找么,我有些事要过
甲袋的意思是什么啊?知道的请说下!
金鹤舞蹈艺术学校地址在什么地方,我要处理点
筑梦之路社会公正是中国梦的基石,社会应该毫
推荐资讯
儿童手脑潜能会馆(伊春伊春区)地址在哪,我要
华西医院有没有查全身癌细包最权威的仪器
患者,男,27岁。小便热涩疼痛,尿色深红,或
#include<reg52.h> sbit led1=p1^0; void mai
小雨点书法地址好找么,我有些事要过去
在网上谈恋爱被网恋男友骗了一万多,可是我没
初中数学题.快一点,很急二分之一减三分之X等
某商品的进价为80元,打七折售出后,仍可获利
BaBy童话儿童摄影(金山店)地址好找么,我有些
四川参公人员因病死亡后现行伤葬费,抚恤金标
縩綷的意思是什么啊?知道的请说下!
奇瑞风云2两厢为什么有时会打不着火呢
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?