# Interface VariantAccumulatorExecutor<ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>, RESULT>

All Known Implementing Classes:
  `VariantAccumulatorExecutor.MultiThreadedChunkBased`

public interface VariantAccumulatorExecutor<ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>, RESULT>
Describes the functionality for an executor that manages the delegation of work to `VariantProcessor.Accumulator`s.

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static class`
`VariantAccumulatorExecutor.MultiThreadedChunkBased<A extends VariantProcessor.Accumulator<R>, R>`
A `VariantAccumulatorExecutor` that breaks down work into chunks described by the provided `VariantIteratorProducer` and spreads them over the indicated number of threads.

## Method Summary

Modifier and Type
Method
Description
`Collection<ACCUMULATOR>`
`accumulators()`
Returns the `VariantProcessor.Accumulator`s associated with this executor.
`void`
`awaitCompletion()`
Blocks until the work is complete.
`void`
`start()`
Starts the work of the executor, returning immediately.

## Method Details

### start

void start()
Starts the work of the executor, returning immediately.

### awaitCompletion

void awaitCompletion() throws InterruptedException
Blocks until the work is complete.

Throws:
  `InterruptedException`

### accumulators

Collection<ACCUMULATOR> accumulators()
Returns the `VariantProcessor.Accumulator`s associated with this executor.