等待(超时)是否不可靠?

时间:2014-04-09 08:51:09

标签: java multithreading

超时后,线程还需要争夺自己的监视器或锁。

然后,在最坏的情况下,这可能需要很长时间,并且比超时时间长得多

是吗?

1 个答案:

答案 0 :(得分:3)

是。您无法保证线程何时会执行。只是它会在睡眠时间之后的某个时间发生

ScheduledExecutorService之类的东西可以通过scheduleAtFixedRate缓解此问题,但它们仍无法保证它会在当时正好运行。

为避免这种情况,您需要一个实时操作系统。

然而,在实践中,大多数计算机都足够快,除非您正在做一些非常时间关键的事情,否则这不是问题。线程将在大多数时间的所需时间的几毫秒内执行。