対ForkJoinPoolで実行されるタスク、私は次のような状況に出くわしました:状況的使用:私は、Java 8で提供される新機能のいくつかを理解しようとしているので、新しいスレッド
私はasynchronメソッドの呼び出しを実装したいです私のアプリケーション(JavaFX)に入れます。アイデアは、GUIに関連するすべてのために別個のスレッドを提供/使用することで、バックグラウンドタスクはアプリケーションで可視出力をブロック/遅延させませんでした。
バックグラウンドタスクについては、スレッドのプールを使用するか、単にアプリケーションのメインスレッドでスレッドのプールを使用するかのいずれかを考えました。 task
がRunnable
であるのに対し、
CompletableFuture.runAsync(task);
:その後、私はこのような何かをやったときにCompletableFuture
クラスを使用して、標準的な方法で使用さForkJoinPoolに出くわしました。
ほとんどのチュートリアルとJavadocでは、ForkJoinPool
は "を実行するタスクを待っているスレッドを含むプール" と記述されています。また、ForkJoinPool
は、通常、ユーザーマシンのコアのサイズです。ハイパースレッディングがサポートされている場合は、倍になります。
従来のThread
を非同期に実行したいとき、私にはどのようなメリットがありますか?
JavaFXアプリケーションを実装している場合は、[Worker](https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/)のようなJavaFXの機能を最初に調べるべきです。 Worker.html)および[Task](https://docs.oracle.com/javase/8/javafx/api/javafx/concurrent/Task.html)を参照してください。 –