そのため、マルチスレッドがどのように機能するかについて少し混乱しています。たとえば、Thread
calledのサブクラスを作成するとMySub
、次のようになります。
public class MySub extends Thread {
public void run {
for(int i = 0; i < 5; i++){
System.out.println(i);
}
}
}
そして、メインクラスでこれを行います:
public static void main(String[] args) {
Thread m = new MySub();
Thread m2 = new MySub();
m.start();
m2.start();
}
start()
のメソッドを呼び出してから、スレッドの終了を待たずにのメソッドのm
呼び出しに直接進むべきではありませんか? それがマルチスレッドのポイントではありませんか?start()
m2
m
しかし実際には、 の呼び出しから 0 から 4 を出力し、次にのstart()
呼び出しで0 から 4 を出力します。それらは同時にではなく、順番に行われましたが、これは私が期待したものではありませんでした。0 から 4 の数字の混乱を予想していました。m
start()
m2