java 中的interrupt问题

classMyThreadimplementsRunnable{publicvoidrun(){System.out.println("A-->进入run()方法。");... class MyThread implements Runnable{
public void run(){
System.out.println("A --> 进入run()方法。") ;
try{
System.out.println("B --> 休眠方法之前。") ;
Thread.sleep(20000) ;
System.out.println("C --> 正常结束休眠。") ;
}catch(Exception e){
System.out.println("D --> 休眠被中断。") ;
// 最好可以让代码返回到被调用处
return ;
}
System.out.println("E --> run方法执行完毕。") ;
}
};
public class ThreadDemo03{
public static void main(String args[]){
Thread t = new Thread(new MyThread()) ;
t.start() ;
t.interrupt() ;
}
};
---------------------------
-----------------------
其中的
t.start() ; t.interrupt() ; 以及run ();方法的执行顺序是什么?

执行interrupt() ;方法时会抛出异常,
在这个程序中,是先执行了sleep()方法,然后在休眠(sleep)的时候再去执行 t.interrupt() ,还是先执行 t.interrupt() ,因为遇到 Thread.sleep(20000) ;而抛出异常?

或者 是别的顺序?
---------------
麻烦高手给分析下,谢啦····
展开
 我来答
monkey_1985
2008-12-06 · 超过14用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:0
展开全部
多线程程序的顺序无法判断。
上面的例子里面,当请求Thread.start()方法后,Java内部进行一些操作(详细流程看JDK的源码),然后请求run()方法. start()执行完后,run方法就开始了,同时main()方法继续执行,先执行interrupt()还是先执行sleep()都有可能,而且在不同机器上也不一样.
尊所平7548
2008-12-06 · TA获得超过2124个赞
知道答主
回答量:413
采纳率:100%
帮助的人:346万
展开全部
我比较同意这个说法:
多线程程序的顺序无法判断。
上面的例子里面,当请求Thread.start()方法后,Java内部进行一些操作(详细流程看JDK的源码),然后请求run()方法. start()执行完后,run方法就开始了,同时main()方法继续执行,先执行interrupt()还是先执行sleep()都有可能,而且在不同机器上也不一样.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
03070109
2008-12-06 · TA获得超过475个赞
知道小有建树答主
回答量:1306
采纳率:0%
帮助的人:1219万
展开全部
线程方法中SLEEP这个方法会抛出异常,必须将其进行捕获,写SLEEP方法时,使用TRY语句将其捕获
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
antolife
2008-12-06 · TA获得超过461个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:208万
展开全部
迷茫.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式