Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでstart()の代わりにrun()メソッドを直接呼び出すことはできますか?


はい、できます。例を見てみましょう-

class my_thread extends Thread{
   public void run(){
      try{
         System.out.println ("The thread " + Thread.currentThread().getId() + " is currently running");
      }
      catch (Exception e){
         System.out.println ("The exception has been caught");
      }
   }
}
public class Main{
   public static void main(String[] args){
      int n = 6;
      for (int i=1; i<n; i++){
         my_thread my_object = new my_thread();
         my_object.run();
      }
   }
}

出力

The thread 1 is currently running
The thread 1 is currently running
The thread 1 is currently running
The thread 1 is currently running
The thread 1 is currently running

「my_thread」という名前のクラスは、実行中の現在のスレッドのIDを提供する「run」関数が定義されているメインスレッドを継承します。例外(存在する場合)をキャッチし、関連するエラーを表示するtryandcatchブロックが定義されています。 main関数では、「for」ループが実行され、「my_thread」クラスのnewobjectが作成されます。このオブジェクトで「実行」関数が呼び出されます。


  1. JavaでinvokeLater()メソッドを呼び出すにはどうすればよいですか?

    invokeLater() メソッドは静的です SwingUtilitiesのメソッド クラスであり、タスクを非同期に実行するために使用できます。 AWT イベントディスパッチャスレッド 。 SwingUtilities.invokeLater() メソッドはSwingUtilities.invokeAndWait()のように機能します ただし、リクエストはイベントキューに配置されます そしてすぐに戻る 。 invokeLater() メソッドは、実行可能内のコードのブロックを待機しません ターゲットによって参照されます 実行します。 構文 public static void in

  2. Javaでfinalメソッドを継承できますか?

    はい、finalメソッドは継承されますが、オーバーライドすることはできません。