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


线程方法:

  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("线程该停止了");
            } 
            
        } 
    }
}

相关