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
一切尽在标题中: 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