ほんの2〜3年前までは複数のCPUあるいはコアを搭載したコンピュータといえば企業や研究施設以外で目にする事はほとんどありませんでした。しかし、昨今のトレンドではパーソナル向けのコンピュータでも複数コア/複数CPUを搭載する物が珍しくなくなってきました。このような状況になるに従って、今まではほとんど見た事もなかったようなバグが発見される事も珍しくなくなってきました。今回はそんな状況に関する問題です。
このプログラムのバグを取り除いてください
次のプログラムはupdate(int)メソッドによって今までの最大値と比較して、与えられた数が今までで最大であれば、最大値を更新するようなプログラムです。しかし、このプログラムはある状況下で期待通り動作しません。そのバグの内容と、バグを修正したプログラムを考えてください。
public class MaxValue {
private int max;
public void update(int value) {
if (max < value)
max = value;
}
public int get() {
return max;
}
}