public class ParallelRunner extends Object
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.
Modifier and Type | Method and Description |
---|---|
static void |
runParallel(ParallelRunnable parallelRunnable)
Run a ParallelRunnable object in parallel using multiple threads.
|
static void |
wait(Future<?> future)
While waiting for a
Future to be completed, steal a minimal
amount of work from any running task and run it. |
public static void runParallel(ParallelRunnable parallelRunnable) throws ApfloatRuntimeException
ExecutorService
returned from
ApfloatContext.getExecutorService()
is limited to using one
thread less than the number of processors. This maximizes CPU usage,
When the ParallelRunnable
is also run from the current thread.parallelRunnable
- The ParallelRunnable to be run.ApfloatRuntimeException
public static void wait(Future<?> future)
Future
to be completed, steal a minimal
amount of work from any running task and run it.future
- The Future to wait for.Copyright © 2019. All rights reserved.