gpt4 book ai didi

java - 使用另一个线程终止一个线程(循环)

转载 作者:行者123 更新时间:2023-12-01 17:31:31 24 4
gpt4 key购买 nike

我正在尝试找到一种方法来终止当前无限循环的线程。根据我的经验,我尝试创建第二个线程,它会中断第一个无限循环的线程,但当然由于无限循环......第一个线程永远不会到达 sleep 函数。所以现在我回到这个

public class Pulse{

private static int z = 0;

public static void main( String[] args ) throws Exception {
try {
final long stop=System.currentTimeMillis()+5L;
//Creating the 2 threads
for (int i=0; i<2; i++) {
final String id=""+i+": ";
new Thread(new Runnable() {
public void run() {
System.err.println("Started thread "+id);
try{
while ( System.currentTimeMillis() < stop ) {
//Purposely looping infinite
while(true){
z++;
System.out.println(z);
}
}
} catch (Exception e) {
System.err.println(e);
}
}
}).start();
}
} catch (Exception x) {
x.printStackTrace();
}
}
}

最佳答案

有一个volatile boolean字段,例如running 。做到true 。你在哪里while (true)将其更改为 while (running) ,和while ( System.currentTimeMillis() < stop ) {while (running && ( System.currentTimeMillis() < stop) ) {
。现在,更改 runningfalse来自其他一些线程。这应该可以很好地停止循环。

关于java - 使用另一个线程终止一个线程(循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10433725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com