Package org.apfloat.internal
Class ParallelRunner
java.lang.Object
org.apfloat.internal.ParallelRunner
Class for running
ParallelRunnable objects in parallel using
multiple threads.
The ParallelRunner assumes that the current ApfloatContext returns an
ExecutorService that is limited to a number of threads that is
one less than the number of processors. This way, when also the current thread
runs batches from the ParallelRunnable, CPU utilization should be
maximized but only so that no more threads are actively executing than the
number of processors.
- Since:
- 1.1
- Version:
- 1.14.0
- Author:
- Mikko Tommila
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidrunParallel(ParallelRunnable parallelRunnable) Run a ParallelRunnable object in parallel using multiple threads.static voidWhile waiting for aFutureto be completed, steal a minimal amount of work from any running task and run it.
-
Method Details
-
runParallel
Run a ParallelRunnable object in parallel using multiple threads. The method assumes that theExecutorServicereturned fromApfloatContext.getExecutorService()is limited to using one thread less than the number of processors. This maximizes CPU usage, When theParallelRunnableis also run from the current thread.- Parameters:
parallelRunnable- The ParallelRunnable to be run.- Throws:
ApfloatRuntimeException
-
wait
While waiting for aFutureto be completed, steal a minimal amount of work from any running task and run it.- Parameters:
future- The Future to wait for.
-