有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在此上下文中使用interrupt()

如果run()还没有完成,并且被从外面召回,我需要先完成running shread

public class EnvTime extends Thread {
    public void run() {
        long step = 2000 / benvelope1.length;
        while (!finished) {
            for (int i = 0; i < benvelope1.length; i++) {
                envOut = benvelope1[i];
                try {
                    Thread.sleep(step);
                } catch (InterruptedException benvelope1) {
                    benvelope1.printStackTrace();
                }
            }
        }
    }
}

所以我从另一个方法调用这段代码:

Env interpol;

interpol.interrupt(); //

interpol=new EnvTime();

interpol.start();

但这不管用


共 (1) 个答案

  1. # 1 楼答案

    现在还不清楚你想要实现什么,但是通过这样做

    Env interpol;
    
    interpol.interrupt(); //
    

    你可能会得到NullPointerException。如果你想让你的代码到达

    } catch (InterruptedException benvelope1) {
        ...
    }
    

    您需要确保线程在try块中,特别是在中断Thread.sleep方法时

    换句话说,在中断线程之前,至少需要启动线程