Java で MULTITHREADING について学んでいますが、次のコードで、子スレッドで run メソッドを呼び出すために start メソッドが実行されたときに、子スレッドがすぐに実行されない理由を知りたいですか?
代わりに、start メソッドを実行した後、メイン スレッドはそのコードを実行し続け、"." の出力を開始します。これは 3 回実行され、制御は子スレッドに引き継がれます。その後、子スレッドはそのコードを 1 回実行し、メイン スレッドに戻ります。その後、メインスレッドが完了し、子スレッドも実行を完了します。
なぜこれが起こるのか理解できませんか?
class MyThread implements Runnable {
String thrdName;
MyThread(String name) {
thrdName = name;
}
public void run() {
System.out.println(thrdName + " starting.");
for (int count = 0; count < 10; count++) {
System.out.println("In " + thrdName + ", count is " + count);
}
}
}
class UseThreads {
public static void main(String args[]) {
System.out.println("Main thread starting.");
MyThread mt = new MyThread("Child #1");
Thread newThrd = new Thread(mt);
newThrd.start();
for (int i = 0; i < 50; i++) {
System.out.print(".");
}
}
}