多线程之线程停止

 package com.yeyue.demo01;
 
 /*
 1、建议线程正常停止----->利用次数,不建议死循环
 2、建议使用标志位----->设置一个标志位
 3、不要使用stop或者distory等过时或者jdk不建议的使用方法
  */
 
 public class TestStop implements Runnable{
     //定义线程中使用的标志位
     private boolean flag = true;
 
     @Override
     public void run() {
         //线程体使用其标志位
         while(flag){
             System.out.println("Thread is running ...");
        }
    }
     //对外提供方法改变标志位
     public void stop(){
         this.flag = false;
    }
 
     public static void main(String[] args) {
         TestStop testStop = new TestStop();
         new Thread(testStop).start();
 
         for (int i = 0; i < 1000; i++) {
             System.out.println("main"+i);
             if(i==500){
                 testStop.stop(); //调用方法改变标志位,停止线程
                 System.out.println("线程该停止了");
            }
        }
         
    }
 }

 

posted @ 2021-06-28 14:19  深夜暗月  阅读(72)  评论(0)    收藏  举报