Java の Executor Framework でスレッド プールを使用したり、現在のスレッドでシームレスにタスクを実行するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-04 11:30:02
オリジナル
414 人が閲覧しました

How can I use a thread pool or run tasks on the current thread seamlessly in Java's Executor Framework?

Java Executor Framework の現在のスレッドでスレッド プールを使用する

Java で ExecutorService を構成したい場合があります。スレッド プールを使用するか、現在のスレッドでタスクをシームレスに実行します。簡単な解決策は、現在のスレッドでタスクを即座に実行する構成不可能なエグゼキュータである CurrentThreadExecutor を利用することです。

このアプローチを実装するには、次の手順を実行します。

<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>
ログイン後にコピー

Java 8 では、代替ソリューションを使用します。エグゼキューターとしてのラムダ式:

<code class="java">Executor e = Runnable::run;</code>
ログイン後にコピー

このラムダ エグゼキューターは現在のスレッドでタスクを実行するため、明示的なエグゼキューター構成の必要がなくなります。

以上がJava の Executor Framework でスレッド プールを使用したり、現在のスレッドでシームレスにタスクを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート