我正在做一份Java的历年试卷,以下是其中一道题目,我感到有些困惑:
当一个线程在其run()方法中执行以下语句时,会发生什么情况?(选择所有适用项。)
sleep(500);
A. 这将停止执行,并在精确500毫秒后开始执行。 B. 这将停止执行,并且不早于500毫秒后再次开始执行。 C. 这将导致编译错误,因为您不能在 run() 方法中调用 sleep(...) 方法。 D. 这将导致编译错误,因为 sleep(...) 方法不接受任何参数。
我选择了 A 和 B,但关键答案只是 B,是否存在任何情况 A 也可能发生?能否有人为我澄清一下?非常感谢。
使当前正在执行的线程暂停(临时停止执行)指定的毫秒数,取决于系统计时器和调度器的精度和准确性。
这取决于你的参考点。但从系统的角度来看,在重新启动之前至少会经过X时间。 - Sotirios DelimanolisThread
,这在问题中并没有说明。 - user207421