易网时代-编程资源站
Welcome
微信登录
编程资源
图片资源库
蚂蚁家优选
PDF转换器
软件资源
软件开发
、
小程序制作
、
系统集成与运维
、
空间租用
、
硬件开发
、
视频监控
、
技术咨询与支持
——联系电话:0311-88999002/88999003
首页
/
操作系统
/
Linux
/
Java 线程的停止
class
Student
implements
Runnable
{
public
boolean
flag=
true
;
/*public void run() {
while(flag)
{
System.out.println(Thread.currentThread().getName());
}
}*/
public
synchronized
void
run()
{
while
(flag)
{
try
{
wait();
System.out.println(Thread.currentThread().getName());
}
catch
(Exception ex)
{
System.out.println(Thread.currentThread().getName()+
".......Exception"
);
flag=
false
;
}
}
}
}
public
class
StopThread {
public
static
void
main(String args[])
{
Student stu=
new
Student();
Thread t1=
new
Thread (stu);
Thread t2=
new
Thread(stu);
t1.start();
t2.start();
for
(
int
i=
0
;i<
100
;i++)
{
System.out.println(Thread.currentThread().getName());
stu.flag=
false
;
t1.interrupt();
t2.interrupt();
}
}
}
/*
* 线程的停止
* 在多线程中,线程一般都是循环执行的,而线程里面执行的代码就是run 方法里面定义的代码,如果run 函数运行结束,那么线程自然结束
* 所以控制线程结束,就是控制run 方法里面的循环结束,也就是在某一个时刻设置线程运行的开关
*
*
* 而在线程出于wait 状态下,你尽管改变了状态,但现在处于wait 状态,所有该现在就不能结束,那么要用线程里面的另一个方法: interrupt,
* interrupt 将清除wait sleep 的状态,接着运行程序,同时会抛出一个InterruptException ,所以可以在catch捕捉的异常里面设置 运行开关,而
* 这种方法如果里面没有wait,将不会停止线程
*
* 所以由上面两点得出,要终止现在得有两点,一是在某一时刻,设置线程的运行开关,而且如果有wait 的话,那么就用interrupt ,然后捕捉异常,在异常
* 里面设置 线程运行开关
*
* 2011/10/24 20:49:21
* */
收藏该网址
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图