在java中,一个线程对象是有自己的生命周期的,如果要想控制好线程的生命周期,则首先应该认识其生命周期。
被废弃的线程生命周期控制方法:
停止多线程:public void stop();
挂起线程:public final void suspend();
恢复挂起的线程执行:public final void resume();
从jdk1.2开始不推荐使用,现在可以通过设置标志位停止一个线程的运行
范例:优雅的停止线程运行
public class ThreadDome333 {
public static boolean flag=true; //线程停止标记
public static void main(String[] args) throws InterruptedException {
new Thread(()->{ //新的线程对象
long num=0;
while(flag) { //判断标记
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"正在运行、num"+num++);
}
},"执行线程").start();
Thread.sleep(200); //运行200毫秒
flag=false; //停止线程,修改执行标记
}
}
执行结果
执行线程正在运行、num0
执行线程正在运行、num1
执行线程正在运行、num2
执行线程正在运行、num3
刚开始为真,满足循环条件,50毫秒循环一次,每50毫秒num+1,线程运行200毫秒时,改变flag,此时停止线程。
多线程运行状态