volatile的应用

in 编程 with 0 comment

volatile的应用

在多线程并发编程中synchronized和volatile都扮演着重要角色,vlatile是轻量级的synchronized,在多处理器开发中保证了共享变量的“可见性”。可见性意思是当一个线程修改一个共享变量的时候,另一个线程能读到这个修改的值,如果volatile变量修饰符使用的恰当的话,它比synchronized的使用和执行成功更低,以为他不会引起线程上下文切换和调度

CPU的术语定义
术语英文单词术语描述
内存屏障memory barriers是一组处理器指令,用于实现对内存操作的肾虚限制
缓冲行Cache lineCPU高速缓存中可以分配的狭小存储单位,处理器填写缓存行时会加载整个缓存行,现代CPU需要执行几百次CPU指令
原子操作atomic operations不可中断的一个或一些列操作
缓存行填充cache line fill当处理器是被到从内存中读取操作数是可以缓存的,处理器读取整个高速缓存行到适当的缓存(Li,L2,L3的或所有)
缓存命中cache hit如果进行高速缓存填充操作的内存位置仍然是下次处理器访问的地址时,处理器重缓存中取出数据,而不是从内存读取
写命中write hit当处理器间操作数写回到一个内存缓存的区域时,它首先会检查这个缓存的内存地址是否在缓存行中,如果存在一个有限的缓存行,则处理器将这个操作写回缓存,而不是写回到内存,这个操作被称为写命中
写缺失write misses the cache一个有效的缓存行被写入到不存在的内存区域