多线程-五大状态-线程停止-线程停止的代码、方法

 

 

复制代码
线程方法:

  setPriority(int bewPriority) 更改线程优先级

  static void sleep(long millis):在指定的毫秒数内让当前正在执行的线程休眠

  void join() 等待该线程终止

  static void yield() 暂停当前正在执行的线程对象,并执行其他线程,也叫礼让

  void interrupt() 中断线程 别用这个方式

  boolean isAlive(); 测试线程是否处于活动状态
停止线程:
  不推荐使用JDK提供的stop()、destroy()方法。(已弃)
  推荐线程自己停止下来
  建议使用一个标志位进行终止就是,当flag=fakse,则终止线程运行
如:
  public class TestStop implements Runnable{
//线程中定义线程体使用标识
public boolean flag=true;

public void run(){
//线程体使用该标识
while(flag){
System.out.println("run...Thread");
}
}
//对外提供方法改变标识
public void stop(){

this.flag=falsel
}

}
复制代码

 

复制代码
//测试stop:停止
//1.建议线程正常停止----》利用次数,不建议死循环
//2.建议使用标志位---》设置一个标志位
//3.不要使用stop或者destroy等过时或者JDK不建议使用的方法
public class Main implements Runnable{
   //1.设置一个标志位
   private boolean flag=true;
    
    public void run(){
        int i=0;
        while(flag){
            
            System.out.println("run..."+i++);
            
        }
        
    }
    
    //设置一个公开的方法,停止线程,转换标志位
    public void stop(){
        this.flag=false;
    }
    public static void main(String[] args) {
        //创建一个线程对象
        Main mn=new Main();
        //创建一个线程方法
        new Thread(mn).start();
        //创建一个循环让他来判断什么时候让线程停止
        for (int i=0; i<1000;i++ ){
            System.out.println("main"+i);
            if (i==900){
                //调用stop方法切换标志位,让线程停止
                mn.stop();
                System.out.println("线程该停止了");
            } 
            
        } 
    }
}
复制代码

 

posted @   hollg  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
点击右上角即可分享
微信分享提示