java
wjwei1213
这个作者很懒,什么都没留下…
展开
-
CAS本身所具有的问题以及解决方法
CAS:全称:Compare And Swap(比较并且交换),用来解决多线程情况下锁带来的性能问题。过程就是拿旧值(O)和内存值(M)做比较,如果相等的话,用新值(N)覆盖内存值(M),如果不相等,就循环比较,直到相等为止。 那么CAS本身存在什么问题呢? 1、ABA问题: 线程A把内存值改为N后,又再次改回M , 如果线程B(业务处理比较慢)此时去比对,发现内存值还是M,就会感觉自己的旧值O相等,线程B会以为内存值没有被改动过。解决这个问题可以使用版本戳的方式。 2、CPU开销: 线程B会原创 2022-03-16 22:36:37 · 961 阅读 · 1 评论 -
synchronized和volatile
synchronized:保证原子性 volatile:保证可见行原创 2022-03-15 21:55:59 · 64 阅读 · 0 评论 -
理解抽象工厂模式
示意图: 代码示例:https://download.csdn.net/download/wjwei1213/15760766原创 2021-03-13 09:52:41 · 68 阅读 · 0 评论