将来は、非同期計算の結果を示しています。これは、計算の完了を待つ、と計算の結果を得るために、計算が完了したかどうかを確認する方法を提供します。結果リストの結果を得たタスクリストの実行と、呼び出し可能型Futuerタイプの次の例を提出してください。
()メソッドを取得します
待機計算が完了し、その後、結果を得ます。
isDone()メソッド
タスクが実行されるかどうかを照会するために使用し、
例としては、次のとおりです:
パブリック クラスTestFuture { パブリック 静的 ボイドメイン(文字列[]引数)がスロー例外{ / * 新建一个呼び出し可能任务* / 呼び出し可能 <整数> callableTask = 新しい呼び出し可能<整数> (){ @オーバーライド 公共の整数コールは()スロー例外{ System.out.println( "--->タスクを開始!" ); TimeUnit.SECONDS.sleep( 2); // スリープ2秒で 返す 2 。 } }。 ExecutorServiceのエグゼキュータ = Executors.newCachedThreadPool()。 将来 <整数>結果= executor.submit(callableTask)。 executor.shutdown(); しばらく(!result.isDone()){ // isDone()メソッドの子スレッドが終了するかどうかを確認することができます するSystem.out.printlnを(「子スレッドが実行されています」); TimeUnit.SECONDS.sleep( 1); // スリープ1秒 } 試み{ System.out.println( "子スレッドの実行結果:" + result.get()); } キャッチ(InterruptedExceptionある| ExecutionException電子){ e.printStackTrace(); } } }
結果