我在课堂上被问到一个问题,'a 的可能最终值是多少?(假设每条语句是一个执行单元。你不需要在指令级考虑问题。)'。附加信息:
线程 A:a = 3 (A1) 和 a = a + 1 (A2)
线程 B:a = 5 (B1) 和 a = a + 7 (B2)
所以经过一些思考,第一个线程输出应该是 4,第二个线程输出应该是 12。
所以我做了测试脚本,看看这是否正确,输出显示了我预期的线程 A:4 和线程 B:12。
问题是,我应该期待其他值吗?或者,也许我只是错误地执行了这个问题?如果可能,我如何调整此代码以获取其他值?这是一个棘手的问题,还是只有我一个人?
编辑:由于我的家庭作业真的不需要代码,所以让我们专注于此类问题的理论实现。