内存栅栏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存栅栏相关的知识,希望对你有一定的参考价值。

当一个线程获得锁时,它会执行一个读栅栏,作废所有缓存在thread-local的变量(比如处理器 cache或者寄存器中的),从而使处理器重新在内存中读取synchronized块中用到的变量。类似的,当释放锁时,项城会执行写栅栏——把所有更改过的变量写到内存中。结合互斥和内存栅栏意味着只要程序遵循正确的同步规则(要写一个会被其它线程读的变量,锁之;要读一个会被其它线程写的变量,锁之)每一个线程都能看到的共享变量都有正确的值

以上是关于内存栅栏的主要内容,如果未能解决你的问题,请参考以下文章

内存栅栏:获取/加载和释放/存储

这里需要内存栅栏吗?

C# volatile 变量:内存栅栏 VS。缓存

是否应该为互斥锁获取-交换循环(或队列获取-加载循环)组合内存栅栏,还是应该避免?

记忆栅栏是如何工作的?

cuda 线程栅栏