gpt4 book ai didi

java - 时间戳、定时器、时间问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:41:53 25 4
gpt4 key购买 nike

我一直在谷歌搜索 Java 时间戳、计时器以及与时间和 Java 有关的任何内容。我似乎无法为我工作。

我需要一个时间戳来控制一个 while 循环,就像下面的伪代码一样

while(true)
{

while(mytimer.millsecounds < amountOftimeIwantLoopToRunFor)
{
dostuff();
}

mytimer.rest();

}

知道我可以使用什么数据类型;我试过时间戳,但似乎没有用。

谢谢夏兰

最佳答案

做类似的事情:

long maxduration = 10000; // 10 seconds.
long endtime = System.currentTimeMillis() + maxduration;

while (System.currentTimeMillis() < endtime) {
// ...
}

(更高级的)替代方法是使用 java.util.concurrent.ExecutorService .这是一个 SSCCE :

package com.stackoverflow.q2303206;

import java.util.Arrays;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class Test {

public static void main(String... args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.invokeAll(Arrays.asList(new Task()), 10, TimeUnit.SECONDS); // Get 10 seconds time.
executor.shutdown();
}

}

class Task implements Callable<String> {
public String call() throws Exception {
while (true) {
// ...
}
return null;
}
}

关于java - 时间戳、定时器、时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2303206/

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