※ ChatGPTを利用し、要約された質問です(原文:スレッドに関して(高橋麻奈の本))
【質問】Java初心者がスレッドコード実行結果について質問
このQ&Aのポイント
Java初心者が「やさしいJAVA」のスレッドに関する記述について理解していません。コードを実行すると、mainの処理と1号車の処理がアトランダムに表示されずに全てmainの処理が連続して表示されます。なぜこのような結果になるのでしょうか?
スレッドに関する記述(P.466)を読んでいますが、実行結果が理解できません。コードを載せておきます。
Java初心者がスレッドの実行結果について質問です。コードを実行すると、mainの処理と1号車の処理が連続して表示されないことに疑問があります。
はじめまして。
現在、高橋麻奈の「やさしいJAVA」を読んで勉強している初心者です。
スレッドに関する記述(P.466)で分からない点があります。下記のコードを実行すると、
mainの処理をしています。
mainの処理をしています。
1号車の処理をしています。
mainの処理をしています。
・
・
の文字がアトランダムに並ぶとの事ですが、実行すると、
mainの処理をしています。
mainの処理をしています。
mainの処理をしています。
mainの処理をしています。
mainの処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
1号車の処理をしています。
と、アトランダムにならずに表示されてしまいますが、何故でしょうか?下記にコードを載せておきます。長くなって、申し訳有りません。
---コード-----------
class Car extends Thread
{
private String name;
public Car(String nm)
{
name = nm;
}
public void run()
{
for(int i=0; i<5; i++){
System.out.println(name+"の処理をしています。");
}
}
}
class Sample1
{
public static void main(String args[])
{
Car car1 = new Car("1号車");
car1.start();
for(int i=0; i<5; i++){
System.out.println("main()の処理をしています。");
}
}
}
お礼
御返事が遅くなってしまい、大変申し訳ありません。 仰るとおりiの値を大きくしたら、アトランダムに表示されるようになりました。又、startメソッドとrunメソッドは必ずペアにしないといけないと思ってましたが、両方ともrunにしても動くのですね。勉強になりました。ありがとうございます!