Java 中一个线程对象有自己的生命周期,如果要控制好线程的生命周期,需要先认识它的生命周期:
suspend()方法:暂时挂起线程
resume()方法:恢复挂起的线程
stop()方法:停止线程
对于线程中 suspend()、resume()、stop() 3种方法并不推荐使用,因为在操作时会产生死锁的问题
所以可以通过设置标志位停止线程运行
class MyThread implements Runnable{
private boolean flag = true;//定义标志位属性
public void run(){
int i=0;
while (this.flag){//循环输出
while (true){
System.out.println(Thread.currentThread().getName()
+ "运行,i = " + (i++));//输出当前线程名称
}
}
}
public void stop(){//编写停止方法
this.flag = false;//修改标志位
}
}
public class Test{
public static void main(String[] args) {
MyThread my = new MyThread();
Thread t = new Thread(my,"线程");//建立线程对象
t.start();//启动线程
my.stop();//线程停止,修改标志位
}
}
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
程序一旦调用 stop() 方法就会将 MyThread 类中的 flag 变量设置为 false,这样 run() 方法就会停止运行,这种停止方式在开发中也比较常用。