线程停止

线程停止

线程状态

创建状态:new Thread() 线程一旦创建,就进入新生状态

就绪状态:线程start()后进入就绪状态,线程阻塞解除后由阻塞状态进入就绪状态

运行状态:线程由就绪状态获得CPU资源之后进入运行状态,释放资源后由运行状态进入就绪状态

阻塞状态:运行状态时等待用户输入时/线程休眠时,进入阻塞状态 sleep/wait/同步锁定

死亡状态:线程自然执行完毕/外部干涉终止线程,线程进入死亡状态

线程方法

setPriority(int newPriority): 修改线程优先级

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

void join(): 等待该线程终止

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

void interrupt(): 中断线程,不要使用这个方法

boolean is Alive(): 测试线程是否处于活动状态

线程停止

不推荐使用JDK提供的stop()/destory()方法,两个方法已废弃

推荐线程自己停止下来

建议使用一个标志位进行终止,变量flag=false,则终止线程运行

代码

package com.example.multi_thread;

public class TestStop implements Runnable {
    private boolean flag;

    public TestStop(boolean flag) {
        this.flag = flag;
    }

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

    }

    public void stop() {
        flag = false;

    }

    public static void main(String[] args) throws InterruptedException {
        TestStop testStop = new TestStop(true);
        new Thread(testStop).start();

        for (int i = 0; i < 10; i++) {
            Thread.sleep(10);
            System.out.println(i);

        }
        testStop.stop();
    }
}
posted @ 2021-11-11 15:37  Oh,mydream!  阅读(35)  评论(0编辑  收藏  举报