Search code examples
javac#timespaninfiniteduration

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


Everything is in the title: Is there an infinite Duration in Java 8 equivalent to the C# Timeout.InfiniteTimeSpan Field?

A bit like: https://msdn.microsoft.com/en-us/library/system.threading.timeout.infinitetimespan(v=vs.110).aspx

I don't think -1 ms is understood across the all java libraries as an infinite timespan, so it might be more a problem of definition.

In order to clarify a bit the context, let's say I want to make a thread asleep for an infinite amount of time without performing an infinite loop, note that this not necessarily a realistic practical use though.

I'm just wondering is there anything built-in in the Java libraries?


Solution

  • From 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.

    You certainly don't need to do an infinite loop to suspend a thread. Consider LockSupport.park() or another one of the many available mechanisms in java.util.concurrent. Can you describe your problem in more detail?