Kodrill

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

並列処理 問題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.MyThread正解
  • B.Runnable
  • C.Runnable と MyThread が両方出力される
  • D.コンパイルエラーになる

解説

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

「並列処理」の無料問題

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