Package com.mchange.v2.async
Class RoundRobinAsynchronousRunner
- java.lang.Object
-
- com.mchange.v2.async.RoundRobinAsynchronousRunner
-
- All Implemented Interfaces:
ClosableResource
,AsynchronousRunner
,Queuable
public class RoundRobinAsynchronousRunner extends java.lang.Object implements AsynchronousRunner, Queuable
A class that provides for effecient asynchronous execution of multiple tasks that may block, but that do not contend for the same locks. The order in which tasks will be executed is not guaranteed.
-
-
Constructor Summary
Constructors Constructor Description RoundRobinAsynchronousRunner(int num_threads, boolean daemon)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RunnableQueue
asRunnableQueue()
void
close()
Clean-up resources held by this asynchronous runner as soon as possible.void
close(boolean skip_remaining_tasks)
Finish with this AsynchronousRunner, and clean-up any Threads or resources it may hold.void
postRunnable(java.lang.Runnable r)
-
-
-
Method Detail
-
postRunnable
public void postRunnable(java.lang.Runnable r)
- Specified by:
postRunnable
in interfaceAsynchronousRunner
-
asRunnableQueue
public RunnableQueue asRunnableQueue()
- Specified by:
asRunnableQueue
in interfaceQueuable
-
close
public void close(boolean skip_remaining_tasks)
Description copied from interface:AsynchronousRunner
Finish with this AsynchronousRunner, and clean-up any Threads or resources it may hold.- Specified by:
close
in interfaceAsynchronousRunner
- Parameters:
skip_remaining_tasks
- Should be regarded as a hint, not a guarantee. If true, pending, not-yet-performed tasks will be skipped, if possible. Currently executing tasks may or may not be interrupted. If false, all previously scheduled tasks will be completed prior to clean-up. The method returns immediately regardless.
-
close
public void close()
Description copied from interface:AsynchronousRunner
Clean-up resources held by this asynchronous runner as soon as possible. Remaining tasks are skipped if possible, and any tasks executing when close() is called may or may not be interrupted. Equivalent to close( true ).- Specified by:
close
in interfaceAsynchronousRunner
- Specified by:
close
in interfaceClosableResource
-
-