net.spy.memcached.compat
Class SyncThread<T>
java.lang.Object
java.lang.Thread
net.spy.memcached.compat.SpyThread
net.spy.memcached.compat.SyncThread<T>
- All Implemented Interfaces:
- Runnable
public class SyncThread<T>
- extends SpyThread
Thread that invokes a callable multiple times concurrently.
Method Summary |
static
|
getCompletedThreads(int num,
Callable<T> callable)
Get a collection of SyncThreads that all began as close to the
same time as possible and have all completed. |
static
|
getDistinctResultCount(int num,
Callable<T> callable)
Get the distinct result count for the given callable at the given
concurrency. |
T |
getResult()
Get the result from the invocation. |
void |
run()
Wait for the barrier, invoke the callable and capture the result or an
exception. |
Methods inherited from class java.lang.Thread |
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
SyncThread
public SyncThread(CyclicBarrier b,
Callable<T> c)
- Get a SyncThread that will call the given callable when the given
barrier allows it past.
- Parameters:
b
- the barrierc
- the callable
run
public void run()
- Wait for the barrier, invoke the callable and capture the result or an
exception.
- Specified by:
run
in interface Runnable
- Overrides:
run
in class Thread
getResult
public T getResult()
throws Throwable
- Get the result from the invocation.
- Returns:
- the result
- Throws:
Throwable
- if an error occurred when evaluating the callable
getCompletedThreads
public static <T> Collection<SyncThread<T>> getCompletedThreads(int num,
Callable<T> callable)
throws InterruptedException
- Get a collection of SyncThreads that all began as close to the
same time as possible and have all completed.
- Type Parameters:
T
- the result type of the SyncThread- Parameters:
num
- the number of concurrent threads to executecallable
- the thing to call
- Returns:
- the completed SyncThreads
- Throws:
InterruptedException
- if we're interrupted during join
getDistinctResultCount
public static <T> int getDistinctResultCount(int num,
Callable<T> callable)
throws Throwable
- Get the distinct result count for the given callable at the given
concurrency.
- Type Parameters:
T
- the type of the callable- Parameters:
num
- the concurrencycallable
- the callable to invoke
- Returns:
- the number of distinct (by identity) results found
- Throws:
Throwable
- if an exception occurred in one of the invocations