多线程更新值java

not*_*mie 2 java multithreading

我们有2个主题:

  • 他们没有任务安排

  • 他们也没有同步机制

他们的任务是:

  • 将值读入寄存器

  • 递增寄存器中的值

  • 将值写回位置X.

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

两个线程同时启动并执行1000次迭代.

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

ric*_*chj 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.
Run Code Online (Sandbox Code Playgroud)