Java 8 中是否存在相当于 .NET Timeout.InfiniteTimeSpan 字段的无限 Duration?

Eho*_*ret 2 c# java timespan duration infinite

一切都在标题中:Java 8 中是否有一个无限的 Duration 相当于 C# Timeout.InfiniteTimeSpan 字段?

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

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

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

我只是想知道Java 库中是否有内置的东西?

aks*_*618 5

作为@Misha 答案的扩展,这本质上是允许的最大持续时间值:

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

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

java.lang.ArithmeticException: long overflow
Run Code Online (Sandbox Code Playgroud)