各种锁
文章平均质量分 80
Java各种锁
Java程序员廖志伟
我是廖志伟,一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主等头衔。拥有多年一线研发和团队管理经验,研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCloud、Mybatis、Dubbo、Zookeeper),消息中间件底层架构原理(RabbitMQ、RocketMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、容器编排Kubernetes等。
展开
-
【Synchronized我可以讲半小时】
锁主要存在四种状态,依次是:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态,锁可以从偏向锁升级到轻量级锁,再升级的重量级锁。但是锁的升级是单向的,也就是说只能从低到高升级,不会出现锁的降级。JDK5引进的CAS自旋,JDK6开始又引入了自适应的CAS自旋、锁消除、锁粗化、偏向锁、轻量级锁这些优化策略,这些优化使得Synchronized性能极大提高。原创 2022-02-24 08:45:00 · 1777 阅读 · 51 评论 -
【AQS我可以讲十分钟】
AQS还维护了一个变量volatile int state,代表了加锁的状态,初始状态下,state的值是0。另外还有一个虚拟的双向队列,这个队列是不存在的,它是抽象的概念,存在结点之间的关联关系,它会将请求共享资源的线程,封装成一个Node结点来实现锁的分配。原创 2022-02-23 11:16:17 · 1230 阅读 · 26 评论 -
java锁:第一章:公平和非公平锁
公平和非公平锁是什么?二者区别?原创 2019-07-28 10:03:26 · 1964 阅读 · 0 评论 -
java锁:第二章:可重入锁和递归锁
可重入锁是什么?可以防止死锁,是同一把锁代码:package com.javaliao.backstage;class Phone{ public synchronized void sendSMS(){ System.out.println(Thread.currentThread().getName()+"\t 发短信"); se...原创 2019-07-28 10:49:37 · 1547 阅读 · 0 评论 -
java锁:第三章:自旋锁
自旋锁是什么?原创 2019-07-28 22:15:00 · 1322 阅读 · 0 评论 -
java锁:第四章:读写锁
理论:未使用读写锁的代码:package com.javaliao.backstage;import java.util.HashMap;import java.util.Map;class Data{ private volatile Map map = new HashMap<String,Object>(); //写 publ...原创 2019-08-11 09:09:16 · 2283 阅读 · 0 评论