非同期タスクを作成し、CompletableFuture
を返すメソッド(別のスレッドで同時に呼び出すことができる)があります。私が合格ラムダは非同期で実行されますJavaスコープの非同期ラムダをローカル変数に適用する方法
public CompletableFuture<Result> createTask(...) {
CompletableFuture<Result> result = ...;
final long startTime = System.currentTimeMillis();
result.whenComplete((res, err) -> {
System.out.println(System.currentTimeMillis() - startTime);
}
}
と私は意志を書いた方法:私は、それは次のようにwhenComplete(...)でそれを連鎖してタスクを実行するのにかかる時間を測定したいですマルチスレッド化することもできます。このラムダは正確な時間を印刷することができますか?ラムダが別のスレッドによって非同期に実行されると、Javaはどのように可変スコープを処理するのですか?
質問を再度読み、編集してください。文言はあまり明確ではない。 – michaelsnowden