のFutureTask
の作業を理解しようとしています。私が読んだところでは、ExecutorService
を使ってスレッドプールを作ることができます。後でRunnable
またはCallable
をFutureTask
にラップして実行することができます。その後、Futureオブジェクトを使用して結果を確認するか、タスクが実行中かどうかを確認できます。しかし、これは内部的にどのようにして行われますか?コレクションのFutureTaskは内部的にどのように動作しますか?
私が理解しようとしていることは、Callableインターフェイスを渡したときにシーンの後ろで起こることです。いくつか質問があります
FutureTask自体がスレッドを内部的に実行してCallableコマンドの実行が終了したかどうかを定期的にチェックしていますか?もしそうでなければ、コマンドがいつ実行終了したかをどのように知っていますか?
get()メソッドはどのように機能しますか? Callableインターフェイスから返される値はどのように取得されますか?
ドキュメントを見るとわかりませんでした。背後にあることを理解するために私が見ることができるコード例はありますか?