複数のスレッドを使用するプログラムを作成する必要があります。スレッドオブジェクトを作成した後、run()メソッドを使用する必要があります。このrunメソッドは組み込まれているようです。ただし、これを作成する必要があり、呼び出されるたびにループを実行する必要があります。誰かが私がこれを行う方法を理解するのを手伝ってもらえますか?
3 に答える
Thread
インターフェイスの匿名実装を渡すことで新しいインスタンスを作成し、Runnable
そのメソッドを使用しstart()
てスレッドの実行を開始できます。下記参照:
Thread t = new Thread(new Runnable() {
public void run() {
while (!stopped) {
// do something interesting here
}
}
});
t.start();
メソッドがクラスrun()
に組み込まれているのはまったく正常なことです。Thread
このクラスは、実行のスレッドを表すアプリケーション内の任意のクラスに基本的なインフラストラクチャを提供することを目的としています。Thread
「世界のあらゆるスレッド」と考えてください。これをアプリケーションで使用する正しい方法は、を継承 Thread
する独自のクラスを提供することです。これはextends
、Danの回答のように、キーワードまたは匿名クラスを使用して行われます。Thread
クラスを拡張し、クラスを呼び出したとしましょうTaskToRunInParallel
。
ドキュメントには、Thread
クラスは特別であると記載されています。クラスを継承し(先ほど行ったように)run()
、独自のクラスのメソッドにコードを配置すると(TaskToRunInParallel
この場合)、このコードはアプリケーションの他の部分と並行して実行されます。あなたがする必要があるstart()
のは、クラスのオブジェクトを呼び出すことだけですTaskToRunInParallel
。
これが、メソッドが組み込まれている理由run()
です。独自のクラスでオーバーライドするためのプロトタイプメソッドを提供します。このようにして、オブジェクトを操作するコードはすべて、オブジェクト、またはから継承する他のクラスを操作Thread
できるようになります。本当に:それらすべてがメソッドを継承することが保証されており、そのコードがそれを安全に呼び出すことができます。ただし、この呼び出しの結果は常に異なります。から継承する各クラスは、独自の方法でオーバーライドできます。これはポリモーフィズムと呼ばれ、継承とともにオブジェクト指向プログラミングの基礎の1つです。TaskToRunInParallel
Thread
run()
Thread
Thread
run()
run()
クラスのメソッドをオーバーライドすることを考えると、いくつの概念が関係しているのかは驚くべきことですThread
。幸運を。