# Class VariantAccumulatorExecutor.MultiThreadedChunkBased<A extends VariantProcessor.Accumulator<R>, R>

java.lang.Object
picard.vcf.processor.VariantAccumulatorExecutor.MultiThreadedChunkBased<A,R>

All Implemented Interfaces:
  `VariantAccumulatorExecutor<A,R>`

Enclosing interface:
  `VariantAccumulatorExecutor<ACCUMULATOR extends VariantProcessor.Accumulator<RESULT>, RESULT>`

public static class VariantAccumulatorExecutor.MultiThreadedChunkBased<A extends VariantProcessor.Accumulator<R>, R> extends Object implements VariantAccumulatorExecutor<A,R>
A `VariantAccumulatorExecutor` that breaks down work into chunks described by the provided `VariantIteratorProducer` and spreads them over the indicated number of threads.

## Nested Class Summary

### Nested classes/interfaces inherited from interface VariantAccumulatorExecutor

`VariantAccumulatorExecutor.MultiThreadedChunkBased<A,R>`

## Constructor Summary

Constructors
Constructor
Description
`MultiThreadedChunkBased(int numThreads, VariantIteratorProducer vcIteratorProducer, VariantProcessor.AccumulatorGenerator<A,R> accumulatorGenerator)`

## Method Summary

Modifier and Type
Method
Description
`Collection<A>`
`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.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### MultiThreadedChunkBased

public MultiThreadedChunkBased(int numThreads, VariantIteratorProducer vcIteratorProducer, VariantProcessor.AccumulatorGenerator<A,R> accumulatorGenerator)

## Method Details

### start

public void start()
Description copied from interface: `VariantAccumulatorExecutor`
Starts the work of the executor, returning immediately.

Specified by:
  `start` in interface `VariantAccumulatorExecutor<A extends VariantProcessor.Accumulator<R>, R>`

### accumulators

public Collection<A> accumulators()
Description copied from interface: `VariantAccumulatorExecutor`
Returns the `VariantProcessor.Accumulator`s associated with this executor.

Specified by:
  `accumulators` in interface `VariantAccumulatorExecutor<A extends VariantProcessor.Accumulator<R>, R>`

### awaitCompletion

public void awaitCompletion() throws InterruptedException
Description copied from interface: `VariantAccumulatorExecutor`
Blocks until the work is complete.

Specified by:
  `awaitCompletion` in interface `VariantAccumulatorExecutor<A extends VariantProcessor.Accumulator<R>, R>`
Throws:
  `InterruptedException`