gpt4 book ai didi

java - 我怎样才能退出 while 循环?基于我在 Java 中预定义的倒计时

转载 作者:行者123 更新时间:2023-11-29 06:08:54 24 4
gpt4 key购买 nike

我有一个需要关闭的循环,以便它可以继续执行具有某些值的下一条语句,否则它会崩溃。最好的方法是什么?例如:

if (data.startsWith("tcp") ) 
{
/* main.strings should have a value but it may take a while */
main.start("i generate some encoding/decoding, i take uncertain time...");

int i = 0;
while(main.strings != null)
{
/* Maximum 20 time waiting is accepted, else not */
if (i > 20 ) break;
Thread.sleep(1000);
i++;
}

/* It crash, if main.start() is not creating the main.strings
* so there is a uncertain specific time, for this but we however can't wait long
*/
main.NowUDPSend(main.strings);
...
}

这是处理实时 while 循环的最佳方式吗,这样我就可以在 20 次限制后准确退出到下一个。

最佳答案

虽然 wait/notifyAll 可以工作,但在 JDK 的 java.util.concurrent 包下有许多锁和屏障的实现,它们比 wait 等并发的基本原语更容易使用和正确使用。

为此,请查看 CountdownLatch。它完全符合您的要求。

http://download.oracle.com/javase/6/docs/api/java/util/concurrent/CountDownLatch.html

关于java - 我怎样才能退出 while 循环?基于我在 Java 中预定义的倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711726/

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