14.6停止线程

在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,此时停止线程。

多线程运行状态
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章