Java线程状态:线程停止
线程状态
线程中的方法
线程停止
1、 不推荐使用JDK提供的stop()、destroy()方法。(已弃用)
2、 推荐线程自己停止下来
3、 建议使用一个标志位进行终止,当变量flag=false,则终止线程运行
代码演示:
1 package com.jiemyx.thread.demo02; 2 3 //停止线程 4 //1、建议线程正常停止--->利用次数,不建议死循环 5 //2、建议使用标志位--->设置一个标志位 6 //3、不建议使用Thread类中的stop()或者destroy()等过时的或者JDK不建议使用的方法 7 public class ThreadStop implements Runnable{ 8 //1、设置一个标志位 9 private boolean flag = true; 10 11 @Override 12 public void run() { 13 int i = 0; 14 while (flag){ 15 System.out.println("多线程正在运行" + i++); 16 } 17 } 18 19 //2、自己设置一个公开的方法停止线程,转换标志位 20 public void stop(){ 21 this.flag = false; 22 } 23 24 public static void main(String[] args) { 25 ThreadStop t = new ThreadStop(); 26 27 new Thread(t).start(); 28 29 //主线程 30 for (int j = 0; j < 1000; j++) { 31 System.out.println("主线程main" + j); 32 if (j==900){ 33 //调用stop()方法,切换标志位让多线程停止 34 t.stop(); 35 System.out.println("多线程停止了"); 36 } 37 } 38 } 39 }
运行结果:
主线程main0
主线程main1
……
主线程main900
多线程停止了
主线程main901
……
主线程main998
主线程main999
主线程与另一个线程同时运行,当主线程900时,会调用自己创建的stop()方法终止另一个线程,而主线程执行到999时才结束。