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时才结束。

posted @ 2021-05-15 22:37  杰myx  阅读(113)  评论(0编辑  收藏  举报