Java 8 中是否有一个等同于 .NET Timeout.InfiniteTimeSpan 字段的无限持续时间?

Is there an infinite Duration in Java 8 equivalent to the .NET Timeout.InfiniteTimeSpan Field?

一切尽在标题中: Java 8 中是否存在与 C# Timeout.InfiniteTimeSpan 字段等效的无限 Duration?

有点像: https://msdn.microsoft.com/en-us/library/system.threading.timeout.infinitetimespan(v=vs.110).aspx

我不认为 -1 毫秒在所有 java 库中都被理解为一个无限的时间跨度,所以它可能更像是一个定义问题。

为了澄清一点上下文,假设我想让一个线程无限长地休眠而不执行无限循环,请注意这不一定是现实的实际应用。

我只是想知道 Java 库中有什么 built-in 吗?

来自 Duration javadoc:

A physical duration could be of infinite length. For practicality, the duration is stored with constraints similar to Instant. The duration uses nanosecond resolution with a maximum value of the seconds that can be held in a long. This is greater than the current estimated age of the universe.

您当然不需要执行无限循环来挂起线程。考虑 LockSupport.park()java.util.concurrent 中许多可用机制中的另一种。你能更详细地描述你的问题吗?

作为 的扩展,这基本上是允许的最大持续时间值:

public static final Duration MAX_DURATION = Duration.ofSeconds(
        Long.MAX_VALUE,   // Max allowed seconds
        999999999L        // Max nanoseconds less than a second
);

除此之外的任何事情都会导致

java.lang.ArithmeticException: long overflow