Kodrill

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

並列処理 問題3[Thread および Runnable を使用したスレッドの作成]

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

Main.java
class MyThread extends Thread {    MyThread(Runnable r) {        super(r);    }​    @Override    public void run() {        System.out.println("MyThread");    }}​public class Main {    public static void main(String[] args) throws InterruptedException {        Thread t = new MyThread(() -> System.out.println("Runnable"));        t.start();        t.join();    }}

選択肢

  • A.Runnable と MyThread が両方出力される
  • B.コンパイルエラーになる
  • C.Runnable
  • D.MyThread正解

解説実行して確認済み

Thread クラスの run() は、コンストラクタで渡された Runnable の run() を呼び出す実装になっています。サブクラスで run() をオーバーライドすると、その実装で置き換わるので、渡した Runnable は呼ばれず MyThread だけが出力されます。super.run() を呼べば Runnable も実行されます。

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

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

「並列処理」の無料問題

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