Kodrill

Java SE 17 Gold (1Z0-826-JPN) 試験 / 並列処理 ・ 無料問題 5/5

並列処理 問題5[ExecutorService を使用した並列処理の実装]

次のコードを実行したときの出力を選んでください。

Main.java
import java.util.concurrent.*;​public class Main {    public static void main(String[] args) throws Exception {        ExecutorService ex = Executors.newFixedThreadPool(2);        Future<Integer> f1 = ex.submit(() -> 1 + 2);        Future<?> f2 = ex.submit(() -> System.out.print("run "));        System.out.println(f1.get() + " " + f2.get());        ex.shutdown();    }}

選択肢

  • A.run 3 null正解
  • B.run 3 run
  • C.3 run null
  • D.コンパイルエラーになる

解説実行して確認済み

値を返すラムダ式 () -> 1 + 2 は Callable<Integer> として、戻り値のない () -> System.out.print(...) は Runnable として submit されます。Future.get() はタスクの完了を待って結果を返し、Runnable のタスクでは null を返します。println の引数は f2.get() が完了してから組み立てられるので、run が先に出力されます。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「並列処理」の要点を解説記事で読む

「並列処理」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。