锁
百起
这个作者很懒,什么都没留下…
展开
-
CAS算法原理分析(java中原子类如何实现线程安全)
1. 目标:从原码层面分析CAS算法、以及java.util.concurrent.atomic 包下的原子类是如何运用CAS算法而实现线程安全。2. 基础知识CAS算法基本原理CAS算法全称:compare and swap (比较并交换),是CPU指令级的操作,只有一步原子操作,整个操作是原子的,也就是要么不执行,要么执行完。这样的系统原子操作能做什么呢?比较内存中的参数值和方法调用处提供的参数值,如果相等,则将内存的参数值,设置为新值,否则返回内存中的参数值。volatile 关键字这个关原创 2020-06-07 22:15:54 · 559 阅读 · 0 评论 -
彻底搞懂 java锁相关概念(15个锁相关名词)
本文目标介绍各种锁的概念,结合实际中锁使用情况,结合部分结合源码的分析,让读者能在短时间内全面掌握锁相关知识。锁的名词(15个)公平锁 / 非公平锁可重入锁 / 不可重入锁独享锁 / 共享锁 互斥锁 / 读写锁乐观锁 / 悲观锁偏向锁 / 轻量级锁 / 重量级锁分段锁&自旋锁上面是很多锁的名词,这些分类并不是全是指锁的类型,有的指锁的特性,有的指锁的设计,下面总结的内容是对每个锁的名词进行一定的解释。拿不到锁的情况下是否立即排队?(公平锁/非公平锁)公平锁公平锁是指原创 2020-06-07 17:36:45 · 702 阅读 · 0 评论 -
ReentrantLock & synchronized 比对与原理浅析
1、一开始jdk出的锁是synchronized ,但是是一个重量级的锁,由于某些代码存在并发的问题,我们统一给这些代码加上synchronized 包裹,发现线程之间竞争只是在部分情况下,还有很多情况下线程是交替执行(也就是A线程执行完后B再进来的,没有出现两者希望同时进入)。比如我们的加了synchronized关键字的代码块在90%都是交替执行,10%是竞争执行(需要明白交替和竞争)。那对于...原创 2020-03-15 11:19:33 · 190 阅读 · 0 评论 -
java 中volitale 原理
111原创 2020-03-10 23:28:51 · 370 阅读 · 0 评论 -
数据库的锁机制
分类行锁顾名思义,行锁就是一锁锁一行或者多行记录,mysql的行锁是基于索引加载的,所以行锁是要加在索引响应的行上,即命中索引,才会启用行锁,如下图所示:如上图所示,数据库表中有一个主键索引和一个普通索引,Sql语句基于索引查询,命中两条记录。此时行锁一锁就锁定两条记录,当其他事务访问数据库同一张表时,被锁定的记录不能被访问,其他的记录都可以访问到。行锁的特征:锁冲突...原创 2020-03-08 23:52:25 · 189 阅读 · 0 评论