java:for循环内的最大执行时间

标签 java timer limit

我有以下代码:

    List<String> instances2 = Arrays.asList("instances/umps20.txt","instances/umps22.txt","instances/umps24.txt","instances/umps26.txt","instances/umps28.txt","instances/umps30.txt","instances/umps32.txt");
    List<Integer> qq1 = Arrays.asList(9,10,11,12,13,14,14);
    List<Integer> qq2 = Arrays.asList(4,4,5,5,5,5,6);

    for (int i = 0; i<7; i++) {
        Tournament t = p.process(instances2.get(i));    
        int nTeams = t.getNTeams();
        int q1 = qq1.get(i);
        int q2 = qq2.get(i);
        UndirectedGraph graph = g.create(t, q1, q2);
        new Choco(graph, nTeams);
        }
    }

现在我想对每次迭代施加限制。因此,假设 3h = 10 800 000ms 后,我希望 for 循环中的所有内容都停止并开始循环的下一次迭代。有什么想法吗?

提前致谢!

尼古拉斯

最佳答案

您可以在开始循环之前获取系统时间,并在每次迭代后进行比较,以检查时间是否超过指定时间,如下所示:

for 循环开始时:

long start = System.currentTimeMillis();

在每次迭代中:

if(start + 10_800_000 >= System.currentTimeMillis()){
    start = System.currentTimeMillis();
    i++;
}

并且你必须删除 for 循环中的 i++

for (int i = 0; i<7;) {

关于java:for循环内的最大执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101566/

相关文章:

java - 如何在 Java3D 中旋转一组对象

javascript - 用于在 mm :ss format 中显示计时器的 Moment js

java - Java中的定时器不暂停程序?

php - 限制mysql中的表大小,并在插入新行(超出限制)时删除行#1

java - 为什么 Java.Time.Year 被任意限制为小于其原始限制?

java - 访问servlet时出现HTTP错误503

java - 调整 JFrame 大小时调整 JFrame 上的图像和 JPanel 大小

java - 使用 PowerMockito 模拟私有(private)方法调用返回 null 而不是返回 List<String> : (Want not to execute private method)

Java - 带计时器的用户输入线程

mongodb - 从每个组中选择前 N 行