Using a Thread Pool with Current Thread in Java Executor Framework
One may wish to configure an ExecutorService in Java to either use a thread pool or run tasks on the current thread seamlessly. A simple solution is to utilize CurrentThreadExecutor, an unconfigurable executor that executes tasks instantly on the current thread.
To implement this approach:
<code class="java">import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; //... ExecutorService es = threads == 0 ? new CurrentThreadExecutor() : Executors.newThreadPoolExecutor(threads); // es.execute / es.submit / new ExecutorCompletionService(es) etc</code>
In Java 8, an alternative solution is to use a lambda expression as an executor:
<code class="java">Executor e = Runnable::run;</code>
This lambda executor executes tasks on the current thread, eliminating the need for an explicit executor configuration.
The above is the detailed content of How can I use a thread pool or run tasks on the current thread seamlessly in Java\'s Executor Framework?. For more information, please follow other related articles on the PHP Chinese website!