gpt4 book ai didi

java - 多线程运行时间计算

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

在我的代码中:

public class thread1 implements Runnable {

public static void main(String[] args) {
thread1 d = new thread1();
new Thread(d).start();
Thread t1 = new Thread(d);
t1.start();
}

@Override
public void run() {
for (int i = 0; i < 3; i++) {
sleep1();
sleep2();
}
}

void sleep1() {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}

synchronized void sleep2() {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}

我运行了我的代码并计算了其完成的运行时间。

完成的最短时间为 7 秒。

为什么?

应该是 6 秒,因为3个循环 * 2秒 = 6秒

最佳答案

由于上下文切换。 sleep() 不是保证的时间量,而是受系统中发生的其他事情的影响。它会尝试回来,但可能不会成功。另外,可能会在您的 IDE 中进行舍入。

关于java - 多线程运行时间计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21907651/

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