一旦我的 boolean 变量设置为 false,如何停止所有线程进一步执行?例如,这是一个简单的代码:-
class testing implements Runnable{
static boolean var;
int id;
public void run(){
System.out.println(id);
var = false;
}
testing(int id){
this.id = id;
}
public static void main(String[] args){
int i = 1;
var = true;
while(var){
new Thread(new testing(i++)).start();
}
}
}
我只想打印“1”,但是当我执行此代码时,我得到多个数字。我该如何防止这种情况?
最佳答案
您不能在 Java 中执行此操作,因为 Java 没有像 C# 那样的属性。 java中最好的解决方案是这样做:
public void setMyVariable(boolean v) {
var = v;
// code to stop executing threads
}
但是,如果您仍然想按照自己想要的方式进行操作,还有一种更糟糕的方法:
创建一个新线程,并运行以下代码:
boolean run = true;
while(run) {
if (!var) {
// code to stop your threads
run = false;
}
}
但请记住,第二种方式不应该是您的选择。坚持使用第一种方法要好得多。
关于java - 一旦变量设置为 false,如何停止线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719700/