如果同时运行2个流程x=1
,x=2
和x=x++
会怎样?
答案 0 :(得分:0)
基于什么时候执行的6种可能性中的任何一种。 6种可能性,因为存在阶乘(3)可能性。
e.g。代码执行的顺序可以是
1. x = 1
2. x++
3. x = 2
结果将是x = 2
或者可能是
1. x = 1
2. x = 2
3. x++
结果将是x = 3。
(我假设您的流程始终在x = 1
之前执行x = 2
,因为您编写它们的顺序)
请注意,如果x++
在任何其他之前执行,那么它可能会导致基于x
初始化的未定义行为。
绘制所有6种可能性,以查看代码可以达到的状态,这应该有助于澄清。
您可能需要查看Lamport的时钟和顺序一致性。