超时后,线程还需要争夺自己的监视器或锁。
然后,在最坏的情况下,这可能需要很长时间,并且比超时时间长得多
是吗?答案 0 :(得分:3)
是。您无法保证线程何时会执行。只是它会在睡眠时间之后的某个时间发生
ScheduledExecutorService
之类的东西可以通过scheduleAtFixedRate
缓解此问题,但它们仍无法保证它会在当时正好运行。
为避免这种情况,您需要一个实时操作系统。
然而,在实践中,大多数计算机都足够快,除非您正在做一些非常时间关键的事情,否则这不是问题。线程将在大多数时间的所需时间的几毫秒内执行。