程序A:

    public void startThreadPool2(boolean flag) {
    while(flag) {
        Runnable run = new Runnable() {
            @Override
            public void run() {
                System.out.println("running");
            }
        };
        service.execute(run);
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}


程式B:

    public static void main(String[] args) {
    SentimentAnalyse sentimentAnalyse = SentimentAnalyse.getInstance();
    sentimentAnalyse.startThreadPool2(true);
}


程式C:

public static void main(String[] args) {
    //how to stop the while loop
}


一会儿循环继续运行,我不知道如何在另一个程序中停止它。

//更新
您的方式可能全部正常,我发现我的单例无效,因为eclipse在不同的程序中使用了不同的类加载器。

最佳答案

将标志存储在SentimentAnalyse中并为其提供设置器!
在项目c中(无论它是什么),您都需要引用您在程序b中创建的SentimentAnalyse实例。通过从程序c调用带有false的setter来停止程序a中的循环

关于java - 如何终止Java中的运行循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27258890/

10-11 21:33