またはそれは?
私は次のスレッドオブジェクトを持っています:
Thread myThread = new Thread(pObject);
ここで、pObjectはRunnableインターフェイスを実装するクラスのオブジェクトであり、次のようにスレッドオブジェクトでstartメソッドが呼び出されます。
myThread.start();
さて、私の理解では、start()が呼び出されると、JVMは暗黙的に(そしてすぐに)run()メソッドを呼び出します。このメソッドは(私の場合のように)オーバーライドされる可能性があります。
ただし、私の場合、start()メソッドは(必要に応じて)すぐには呼び出されないようですが、呼び出し元のブロックから他のステートメント/メソッドが完了するまで、つまり、start()呼び出しの後に次のようなメソッドがある場合は次のようになります。
myThread.start();
doSomethingElse();
doSomthingElse()は、run()メソッドが実行される前に実行されます。
おそらく、start()が呼び出された直後にrun()が常に呼び出されるという最初の前提が間違っています。助けてください!ここでも、start()の直後にrun()を実行する必要があります。ありがとう。