我々はJavaで2件のスレッドがあります。スレッドwhileループ
スレッド1:
…
public void run()
{
while (Share.COUNTER<8)
Share.COUNTER++;
}
…
スレッド2:
質問がされ…
public void run()
{
while (Share.COUNTER>-7)
Share.COUNTER--;
}
…
:スレッドがあることを行っています最初はwhileループで終了しましたか? 2番目の質問は次のとおりです。 スレッドが実行メソッドを終了させる保証はありますか? Javaのスレッドが初めてのので、この質問に答えることができますか?
'Share.COUNTER'の周りに同期がない場合、動作は不確定です。 –
まず、同時に同じプロパティにアクセスする可能性があるため、おそらく同時にアクセスを変更することになります。あなたの質問に答えるために、最初に終わる保証はありません。あなたがそれを実行する場合、スレッド1が最初になり、他のスレッド2が最初になります。チャンスのゲームです – Draken
これは、システムによって優先されるスレッドに依存します。どのスレッドが最初に終了するかは予測不可能であり、そのうちの1つが終了する(したがって、もう1つが終了する)という保証はありません。 – Massimo