X
- result typepublic abstract class LatchedLazyFuture<X>
extends java.lang.Object
implements java.util.concurrent.Future<X>
withRunningThread()
.Constructor and Description |
---|
LatchedLazyFuture() |
Modifier and Type | Method and Description |
---|---|
protected abstract X |
calculate() |
boolean |
cancel(boolean mayInterruptIfRunning) |
X |
get() |
X |
get(long timeout,
java.util.concurrent.TimeUnit unit) |
boolean |
isCancelled() |
boolean |
isDone() |
LatchedLazyFuture<X> |
withRunningThread()
spawns a new thread if not already started or done (otherwise, calculation happens in the first get call)
|
public boolean cancel(boolean mayInterruptIfRunning)
cancel
in interface java.util.concurrent.Future<X>
public boolean isCancelled()
isCancelled
in interface java.util.concurrent.Future<X>
public boolean isDone()
isDone
in interface java.util.concurrent.Future<X>
public X get() throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
get
in interface java.util.concurrent.Future<X>
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public X get(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
get
in interface java.util.concurrent.Future<X>
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException
protected abstract X calculate() throws java.util.concurrent.ExecutionException, java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.lang.InterruptedException
public LatchedLazyFuture<X> withRunningThread()