Class ThreadMethods
- java.lang.Object
-
- com.datumbox.framework.common.concurrency.ThreadMethods
-
public class ThreadMethods extends Object
This class contains a number of helper methods for Java Threads.- Author:
- Vasilis Vryniotis
-
-
Constructor Summary
Constructors Constructor Description ThreadMethods()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidforkJoinExecution(Runnable runnable, ConcurrencyConfiguration concurrencyConfiguration, boolean parallelStream)Alternative to parallelStreams() which executes a runnable in a separate pool.static <T> TforkJoinExecution(Callable<T> callable, ConcurrencyConfiguration concurrencyConfiguration, boolean parallelStream)Alternative to parallelStreams() which executes a callable in a separate pool.static <T> voidthrottledExecution(Stream<T> stream, Consumer<T> consumer, ConcurrencyConfiguration concurrencyConfiguration)Takes the items of the stream in a throttled way and provides them to the consumer.
-
-
-
Method Detail
-
throttledExecution
public static <T> void throttledExecution(Stream<T> stream, Consumer<T> consumer, ConcurrencyConfiguration concurrencyConfiguration)
Takes the items of the stream in a throttled way and provides them to the consumer. It uses as many threads as the available processors and it does not start more tasks than 2 times the previous number.- Type Parameters:
T-- Parameters:
stream-consumer-concurrencyConfiguration-
-
forkJoinExecution
public static <T> T forkJoinExecution(Callable<T> callable, ConcurrencyConfiguration concurrencyConfiguration, boolean parallelStream)
Alternative to parallelStreams() which executes a callable in a separate pool.- Type Parameters:
T-- Parameters:
callable-concurrencyConfiguration-parallelStream-- Returns:
-
forkJoinExecution
public static void forkJoinExecution(Runnable runnable, ConcurrencyConfiguration concurrencyConfiguration, boolean parallelStream)
Alternative to parallelStreams() which executes a runnable in a separate pool.- Parameters:
runnable-concurrencyConfiguration-parallelStream-
-
-