“获取发布”的语义是什么?

在阅读了许多有关编程中的获取发布语义的博客之后,我仍然无法理解。我了解的是,“获取”和“释放”操作均暗示了内存障碍。我的印象是,阻止了编译器(可能还有CPU)在“获取”操作之前和“释放”操作之后对任何指令重新排序。到现在为止还挺好。现在混乱开始了。

困惑1:从这个blog的角度出发,我的理解是获取释放语义很重要。无锁编程。但是,this博客实质上实现了互斥锁,并声称它符合获取释放语义-这使我们回到了平方。

困惑2: This博客说。

获取语义是只能应用于以下操作的属性: 从共享内存读取,是否为读-修改-写操作 或普通负载。然后,该操作被视为读取获取。

发布语义是只能应用于以下操作的属性: 写入共享内存,无论它们是读-修改-写操作 或普通商店。然后将该操作视为写释放。

为什么将同一读写修改操作视为同时获取和释放?

困惑3:获取释放语义与内存障碍有什么不同吗?

困惑4:除了强制执行synchronizes-with关系之外,获取发布语义是否还有其他用例?

wgphgp 回答:“获取发布”的语义是什么?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2345587.html

大家都在问