并发编程
zhm1002
这个作者很懒,什么都没留下…
展开
-
并发编程 synchronized 的探究
多线程并发编程中synchronized 一直是元老级别的角色。在java se1.6 以后为了减少获得锁和释放锁带来的性能消耗引入了偏向锁和轻量级锁,以及锁的存储结构和升级过程。 1、 java 中每一个对象都有可以作为锁,具体表现为: 1)对于普通同步方法,锁是当前的实例对象。 2)对于静态同步方法,锁是当前类的Class对象 3)对于同步方法块,锁是synchronized 括号里配置的对象。 2、同步机...原创 2020-06-28 17:53:21 · 127 阅读 · 0 评论 -
并发编程中 volatile 的探究
在多线程并发编程中,synchronized 和 volatile 都扮演着重要的角色,这边文章主要探究 volatile 的相关应用。 volatile 是 轻量级的synchronized 它在处理器开发中保证了共享变量的 “可见性“-- 当一个线程修改一个共享变量时,另外一个线程能读取到这个修改的值。如果volatile 使用的恰当的话,它比synchronized 的使用和执行成本更低。因为它不会引起上下文的切换和调度。 一、volatile 的定义 ...原创 2020-06-25 16:55:41 · 153 阅读 · 0 评论 -
并发编程的CPU术语定义
术语 英文单词 术语描述 内存屏障 memory barriers 是一组处理器指令,用于实现对内存操作的顺序限制 缓冲行 cache line CPU 高速缓存中可以分配的最小存储单元。处理器填写缓存行时会加载整个缓存行,现代CPU需要执行几百次CPU执行 原子操作 atomic operations 不可中断的一个或者一系列操作 缓存行填充 cache line fill 当处理器识别到从内存中读取操作数是可缓存的,处理器读取整原创 2020-06-25 14:47:16 · 188 阅读 · 0 评论