gpt4 book ai didi

java - 如何从一个线程中打破另一个线程中的循环?

转载 作者:行者123 更新时间:2023-12-02 05:39:02 25 4
gpt4 key购买 nike

我是 Java 新手,我正在尝试使用一个线程来完成另一个线程中的循环,而不管循环的状态如何。

public static void main(String[] args) {
// Either start the other thread here
while(true){
// Or here, not quite sure
// Do stuff
}
}
}



public class Timer implements Runnable{

@Override
public void run() {
long start = System.currentTimeMillis();
while(true) {
long current = System.currentTimeMillis();
if(current - start == 10000){
// How do I notify the loop in main to break?
break;
}
}
}
}

我想做的是在 10 秒后结束 main 中的循环,无论其循环状态如何,因为循环包含从 System.in 读取的 Scanner >,无论是否从键盘上读取到内容,都需要在10秒后停止。我认为最好的解决方案是运行一个计时器线程来计算秒数,然后以某种方式通知另一个线程中的循环,在 10 秒后中断,但是,我不知道如何实现这个...

最佳答案

如果您的目标是在 10 秒后停止循环,则没有理由使用另一个线程。只需检查本地时间即可:

public class Main {
public static void main(String[] args) {
// Instructions

long start = System.currentTimeMillis();
do {
//Instructions
//Instructions
//...
//Instructions
} while (System.currentTimeMillis() - start < 10000);
}
}

关于java - 如何从一个线程中打破另一个线程中的循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497388/

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