-1

他のスレッドのようにメイン スレッドの run メソッドを変更して、run メソッドをオーバーライドし、目的の動作を定義できるかどうか知りたいです。

また、メイン メソッドで記述したコードが実際にメイン スレッドの run メソッドに追加されるかどうかもわかります。これは、メイン スレッドの実行時に実行されるものです。

4

2 に答える 2

0

いいえ、main()メソッドの実行に使用されるスレッドをオーバーライドすることはできません。このスレッドはJVMマジックによって発生し、そのrun()メソッドが呼び出されることはありません(より正確には、そのstart()メソッドが呼び出されることはありません。ソースでその効果に関するメモを確認できます)。これは、通常のスレッドモデルを維持するために存在するだけです(つまり、すべてのスレッドが呼び出しThread.currentThread()て何かを取り戻すことができます)。

于 2012-09-06T19:45:12.827 に答える
0

通常、main メソッドは、アプリケーションの存続期間中は使用されません。それを使用して他のスレッドを初期化して実行し、終了させます。

class Main {
  public static void main(String[] args) {
    new firstThreadImplementation().start();
    // new secondThreadImplementation().start();
    new initGuiThread().start();
    // we are finished here and don't need this thread anymore
  }
}

run()したがって、開始されたスレッドのメソッドを直接制御できます。

于 2012-09-06T19:14:41.360 に答える