109

素人の言葉で言えば、Javaで「実行可能」とは何ですか? 私は高校の AP プログラミングの学生で、その課題は研究を行うこと、または「実行可能」とは何かを他の人から探すことです (私たちは OOP に取り掛かったばかりで、スレッドにはまだ触れていません)。

4

2 に答える 2

204

Runnable は基本的に、スレッドに入れることができるクラスのタイプ (Runnable はインターフェイスです) であり、スレッドが何をすべきかを記述します。

Runnable Interfaceでは、クラスが次のrun()ようにメソッドを実装する必要があります。

public class MyRunnableTask implements Runnable {
     public void run() {
         // do stuff here
     }
}

そして、次のように使用します。

Thread t = new Thread(new MyRunnableTask());
t.start();

インターフェイスがない場合Runnable、別のスレッドで実行する Thread クラスには、run()クラス内のメソッドを見つけるという約束がないため、エラーが発生する可能性があります。そのため、インターフェイスを実装する必要があります。

高度: 匿名型

通常のようにクラスを定義する必要がないことに注意してください。そのすべてをインラインで行うことができます。

Thread t = new Thread(new Runnable() {
    public void run() {
        // stuff here
    }
});
t.start();

これは上記と似ていますが、別の名前付きクラスを作成しないだけです。

于 2012-11-11T00:50:17.567 に答える
10

Runnable次のように定義されたインターフェースです。

interface Runnable {
    public void run();
}

それを使用するクラスを作成するには、クラスを次のように定義するだけです(public) class MyRunnable implements Runnable {

新しくスレッドを作らなくても使えます。これは基本的に、呼び出すことができる単一のメソッド run を備えた基本的なインターフェイスです。

パラメータとして runnable を使用して新しいスレッドを作成すると、新しいスレッドで run メソッドが呼び出されます。

RunnableThreads は を実装し、それは新しい Thread が (新しいスレッドで) 作成されたときに呼び出されることにも注意してください。デフォルトの実装では、コンストラクターで渡した Runnable を呼び出すだけです。そのため、 Thread のメソッドnew Thread(someRunnable)をオーバーライドせずに実行できます。run

于 2012-11-11T00:50:57.643 に答える