摘要: 伪共享 什么是伪共享 ​ 为了解决计算机系统中主存与CPU之间的运行速度差问题,会在CPU与主存之间添加一级或者多级高速缓冲存储器(Cache),这个Cache一般集中于CPU内部当中,所以也叫CPU Cache,图中是两级Cache结构 ​ 在cache中,其中的每一行称为一个cache行,cac 阅读全文
posted @ 2021-10-06 21:16 LilyFlower 阅读(121) 评论(0) 推荐(0) 编辑
摘要: Java指令重排序 Java内存模型允许编译器和处理器对指令重排序以提高性能,并且只会对不存在的数据依懒性的指令进行重排序。在单线程下进行重排序可以保证最终执行的结果与程序顺序执行的结果一致。但是在多线程下就会存在问题:下面看一个例子: int a=1; int b=2; int c=a+b; 下面 阅读全文
posted @ 2021-10-06 18:03 LilyFlower 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 1. Java中CAS操作 在Java中使用锁不好的地方就是当一个线程没有获取到锁时会被阻塞挂起,这会导致线程上下文重新调度与开销。Java提供了非阻塞的volatile关键字来解决共享变量的可见性问题。但是volatile只能保证共享变量的可见性,不能解决读-改-写的原子性问题。CAS即为Comp 阅读全文
posted @ 2021-10-06 17:48 LilyFlower 阅读(243) 评论(0) 推荐(0) 编辑