当我们刚学完Thread一个线程t1之后,迫不及待地键入t1.start()开始启动线程,肯定思考过如何将这个线程停下来
其实原理只有一个,那就是让run方法结束
要知道开启多线程运行,其运行代码通常都是循环结构,只要控制住循环就可以让run方法结合苏,也就是线程结束
比如写个代码
class StopThread implements Runnable
{
public synchronized void run()
{
while(true)
{
System.out.println(Thread.currentThread().getName()+"...run");
}
}
}
public class StopThreadDemo {
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 num=0;
while(true)
{
if(num++==60)
{
break;
}
System.out.println(Thread.currentThread().getName()+"......"+num);
}
}
}
这个小程序很简单,就是让两个线程一直跑,跑到60次之后就break,想法是好的,这个程序我是不会去跑的,因为我知道这个是无限循环,while(true)这个标记让它一直转
所以如果while(true)这个标记能够控制住,这个小程序就能停下来
- 可以定义个flag=true,再定义个changeFlag()方法,这个方法里面将flag切换为false
将while(true)改为while(false) - 如果num++=60,就调用changeFlag方法
class StopThread implements Runnable
{
private boole