|
|
1
6
理论上是的。如果你能设法让两个线程在这样的锁步中运行 time thread A thread B
---- -------- --------
|| CAS
|| atomic_write
|| CAS
\/ atomic_write
这样的话,中科院就永远不会回到现实。 在实践中,当线程共享一个CPU/核心时,这种情况永远不会发生,当线程在不同的CPU或核心上运行时,这种情况也不太可能发生。实际上是 难以置信地 在几个周期内不太可能发生,在天文学上不太可能发生在超过调度量的情况下。 如果这个密码
执行它看起来要执行的操作,即获取
或者你要测试的值不是 现在的 测试的价值,而是某种 最后已知 价值。 换句话说,这个代码示例是对理论的一个测试,但是在实践中您不会像这样使用CA,所以即使您可以让它失败,它也不一定告诉您在现实世界的算法中如何失败。 |
|
|
2
2
在这种情况下,肯定会发生饥饿。引用 the wikipedia page ,
(有关数学证明,请参见相关页面的链接)。 |