黑马程序员技术交流社区
标题:
对于interrupted方法有不明白的地方
[打印本页]
作者:
ぺsimon☆
时间:
2013-5-17 13:58
标题:
对于interrupted方法有不明白的地方
/*
interrupt
这是一个强制清除冻结状态,让线程重新回到运行状态
*/
class StopThread implements Runnable
{
boolean flag=true;
public synchronized void run()
{
while(flag)
{
try
{
this.wait();
}
catch(InterruptedException e)
{
System.out.println(Thread.currentThread().getName()+"清除了冻结状态");
flag=false;
}
System.out.println(Thread.currentThread().getName()+"我来啦");
}
System.out.println(Thread.currentThread().getName()+"哈哈,我在外面");
}
}
class StopDemo
{
public static void main(String[] args)
{
StopThread st=new StopThread();
Thread t1=new Thread(st);
Thread t2=new Thread(st);
t1.start();
t2.start();
int x=1;
while(true)
{
if(x++==60)
{
//注意问题在这里:这里t1调用interrupt方法,它会抛出异常,那么我们就要不抛要不就try,我们是做了try方法,但是是在上面的wait方法上做了处理,
在这句代码并没有做处理,为什么呢?谢谢各位兄弟
t1.interrupt();
t2.interrupt();
break;
}
System.out.println(Thread.currentThread().getName()+x);
}
System.out.println(Thread.currentThread().getName()+"哈哈我是主线程");
}
}
复制代码
作者:
逸盏清茶
时间:
2013-5-17 16:09
interrupt();抛的是SecurityException异常,他是RuntimeException的子类,可以不用处理
作者:
ぺsimon☆
时间:
2013-5-17 17:06
逸盏清茶 发表于 2013-5-17 16:09
interrupt();抛的是SecurityException异常,他是RuntimeException的子类,可以不用处理
哦,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2