我们有两个主题:
他们没有任务安排
他们也没有同步机制
他们的任务是:
将值读入寄存器
递增寄存器中的值
将值写回位置X
在开始时,X包含值0.两个线程都在同一位置修改值。
两个线程同时启动并进行1000次迭代。
问题:两个线程完成后X的最小值是多少? (不是1000而不是2000)
答案 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.