多线程更新值java

时间:2014-06-24 08:38:32

标签: java multithreading

我们有两个主题:

  • 他们没有任务安排

  • 他们也没有同步机制

他们的任务是:

  • 将值读入寄存器

  • 递增寄存器中的值

  • 将值写回位置X

在开始时,X包含值0.两个线程都在同一位置修改值。

两个线程同时启动并进行1000次迭代。

问题:两个线程完成后X的最小值是多少? (不是1000而不是2000)

1 个答案:

答案 0 :(得分:8)

最小的数字是2。

T1 reads the value 0.
T2 increments X 999 times to 999.
T1 writes the value 1
T2 reads the value 1
T1 increments X 999 times to 1000
T2 writes the value 2.