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 void
runParallel
(ParallelRunnable parallelRunnable) Run a ParallelRunnable object in parallel using multiple threads.static void
While waiting for aFuture
to 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 theExecutorService
returned fromApfloatContext.getExecutorService()
is limited to using one thread less than the number of processors. This maximizes CPU usage, When theParallelRunnable
is also run from the current thread.- Parameters:
parallelRunnable
- The ParallelRunnable to be run.- Throws:
ApfloatRuntimeException
-
wait
While waiting for aFuture
to be completed, steal a minimal amount of work from any running task and run it.- Parameters:
future
- The Future to wait for.
-