多线程的状态

  • 时间:
  • 来源:互联网
  • 文章标签:

线程状态在这里插入图片描述在这里插入图片描述

方法说明
setPriority(int new priority)更改线程的优先级
static void sleep(long millis)在指定的毫秒数内让当前正在执行的线程休眠
void join()等待该线程终止
static void yield()暂停当前正在执行的线程对象,并执行其他线程
void interrupt()中断线程,别用这个方式
boolean isAlive()测试线程是否处于活动状态

停止线程:

  • 不推荐使用JDK提供的stop() , destroy()方法。 【已废弃】
  • 推荐让线程自己停下来
  • 建议使用一个标志进行终止变量 当 flag=flase,则终止线程运行。

案例 线程停止

package Thread;

import javafx.scene.paint.Stop;
import jdk.nashorn.internal.ir.Flags;

/*
* 测试stop
* 1.建议线程正常停止 ----->利用次数,不建议死循环
* 2,建议使用标识符 ----> 设置一个标识符
* 3. 不要使用stop或destroy 等过时或者JDK不建议的方法
* */
public class ThreadStop  implements  Runnable{
    //1.设置一个标识符
    private  boolean flag=false;

    @Override
    public void run(){
        int i=0;
        while (flag){
            System.out.println("run....Thread"+i++);
        }
    }

    public void stop(){
        this.flag=false;
    }

    public static void main(String[] args) throws InterruptedException {

        ThreadStop ts=new ThreadStop();

        new Thread(ts).start();


        for (int i = 0; i < 1000; i++) {
            System.out.println("main----------"+i);
            Thread.sleep(10);
            if (i==900){
                //调用stop方法 切换标志位,让线程停止
                ts.stop();
                System.out.println("线程停止了");
            }
        }
    }
}

本文链接http://www.taodudu.cc/news/show-1944642.html