私が理解しているところからFuture
を取得する唯一の方法は、Executors.newFixedThreadPool(10)
(btw、どのように多くのスレッドを使用するのですか?いくつかのサムルールがありますか?)によって得られるExecutorService
を使用することです。だから、デフォルトのExecutorServiceはありますか?それを作成して将来のオブジェクトを取得するために維持するつもりですか?
私は理解していない、私は使用することが出来るのですかどうかである。その後、
ExecutorService executorService = Executors.newFixedThreadPool(n);
と(例えば、いくつかのトップレベルIoC
で)それを保存し、私は新しいFuture
を必要なときexecutorService
を呼びますか?
デフォルトのJavaの組み込みのExecutorService
のように私はExecutorService
の初期化とメンテナンスのナグを避けるために使用できますか?
「デフォルトのExecutorService」とはどういう意味ですか?何をしたいですか? – Tunaki
@Tunakiは 'C#'で、フレームワーク( '.net')によって自動的に管理されるので、スレッドプールを自分で作成する必要はありません。 – Tar
普通のJavaでは自分でそれを行う必要があります。いくつかのフレームワークがデフォルトを提供しています。たとえばhttps://github.com/netty/netty/wiki/Using-as-a-generic-library#the-global-event-loopです。必要なスレッドの数はタスクに依存します。 CPUは、あなたがCPUコアを持っているものと同じくらい多くのタスクを処理します。ほとんどの場合、IO応答(たとえば、HTTP応答)を待つタスクが潜在的に多くあります。あなたが待っているものがどれくらいのIOを処理できるかによって異なります。 ['FutureTask'](https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/FutureTask.html)はまた、executorのない未来を提供します(単純な' Thread'sでそれらを実行します) 。 – zapl