标题: acquire和release语义的理解 [打印本页] 作者: 1210603696 时间: 2014-11-12 19:38 标题: acquire和release语义的理解 我知道在mutex中,lock具有acquire语义且unlock具有release语义,这样能保证两者之间的代码不能reorder,但是我想光是这样并不能保证side effect被其他线程看到,对acquire和release的解释如下:Acquire semantics prevent memory reordering of the read-acquire with any read or write operation which follows it in program order且Release semantics prevent memory reordering of the write-release with any read or write operation which precedes it in program order,这其中并没有cache coherence相关的内容,除非release语义具有刷新store buffer的能力才行吧,但是上面的解释好像只写了memory oreder相关的内容,因此我想问问大家release具有invalidate cache的能力不作者: folklore 时间: 2014-11-12 19:52
理论上lock和release都应当有invalidate cache的能力, 不然就不Realtime了。作者: 1210603696 时间: 2014-11-13 07:47 回复 2# folklore
嗯,我也是这么理解的,要不然其他线程在本线程unlock的时候就看不到side effect了。只是我看了很多英文上的acquire和release解释里面并没有说道invalidate cache相关的内容,而是只说了memory ordering我才有此疑惑的