并发程序的非直觉行为:一个简单的例子
2025-01-18
作者在使用模型检查器检查一个简单的并发程序时,发现了令人惊讶的结果。程序包含两个并发进程P和Q,它们分别对变量n进行10次加1操作。直觉上,n的最终值应该在10到20之间。然而,模型检查器却发现了一种极端的交错执行,导致n的值最终为2。作者尝试用Go语言编写程序来重现这种行为,但未能成功,这表明这种极端交错在实际应用中极少出现。这个例子展示了并发程序中隐藏的复杂性,以及直觉在理解并发行为时的局限性。
阅读更多
开发
非直觉行为