次のコードを実行すると、スレッド r からの出力が受信されるため、スレッド r が起動されますが、エラーを示唆するエラーは出力されませんが、テスト フレーズは出力されません。これがスレッドの起動を超えて進行できないのはなぜですか? 続行する前にスレッドが停止するのを待ちますか?
while(x<y){
Runnable r = new Rule1(2, 0);
new Thread(r).start();
System.out.println("value of x is: " + x);
x++;
}
より早く完了するように、rule1 メソッドを変更しました。完了すると、「x の値」文字列がコンソールに書き込まれます。これは、メイン メソッドがスレッドの完了を待っていることを意味します。スレッドを起動することで、メインスレッドと新しいスレッドの両方を同時に実行できるように、スレッドが個別に実行されると考えました。この仮定は間違っていますか?これは rule1 のコードのサンプルです
public class Rule1 implements Runnable {
public Rule1(int z, int q){
//do stuff
}
public void run(){
}
}