停止一个java的线程执行

找了一个停止线程运行的方法,代码如下:

public class stopThread extends Thread {
    private volatile boolean stop = false;
    
    @Override 
    public void run(){
        System.out.println("t1 is start...");
        while(!stop){
            System.out.println("t1 is running....");
        }
        System.out.println("t1 stopped");
    }
    
    public void terminate(){
        stop = true;
    }
    
    public static void main(String[] args){
        stopThread t1 = new stopThread();
        t1.start();
        for(int i = 0; i < 500000;i++ ){
            System.out.println("main is running....");
        }
        t1.terminate();
    }

}

如此就可以停止掉一直在运行的线程。

可是这么干有一个问题,我现在写的是很快就返回到了while去判断条件,这样会跳出来。但是如果是要控制线程执行时间,如果超时就不执行了,直接返回,这段代码还是不合适。可以再想想。。。。

原文地址:https://www.cnblogs.com/edenpans/p/4615773.html