Java并发线程读后续(二)

续上一篇文章

避免死锁的方法

  1. 避免一个线程同时获取多个锁;
  2. 避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源;
  3. 尝试使用定时锁,使用lock.tryLock(timeout)来替代使用内部锁机制;
  4. 对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况;

CPU的术语定义

术语 英文单词 术语描述
内存屏障 memory barriers 是一组处理器指令,用于实现对内存操作的顺序限制
缓存行 cache line 缓存中可以分配的最小存储单位,处理器填写缓存线时会加载整个缓存线,需要使用多个内存读周期
原子操作 atomic operations 不可中断的一个或一系列操作
缓存行填充 cache line fill 当处理器识别到从内存中读取操作数是可缓存的,处理器读取整个缓存行适当的缓存(L1,L2,L3的或所有)
缓存命中 cache hit 如果进行高速缓存行填充操作的内存位置仍然是下次处理器访问的地址时。处理器从缓存中读取操作数,而不是从内存读取
写命中 write hit 当处理器将操作数写回到一个内存缓存的区域时,它首先会检查这个缓存的内存地址是否在缓存行中,如果存在一个有效的缓存行,则处理器将这个操作数写回到缓存,而不是写回到内存,这个操作被称为写命中
写缺失 write misses the cache 一个有效的缓存行被写入到不存在的内存区域

对象头结构

在这里插入图片描述

发布了21 篇原创文章 · 获赞 4 · 访问量 510

猜你喜欢

转载自blog.csdn.net/weixin_39617728/article/details/104875277