程序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/