-
Java LockSupport 几种唤醒机制
暂停线程 LockSupport使用park系列方法底层调用C++代码来暂停线程。 唤醒线程 LockSupport的park方法上有一段注释: Some o
-
PostgreSQL Advisory Lock 咨询锁
概述 Advisory Lock咨询锁分为 Session 级别和事务级别两种级别的锁,以及共享和排他两种模式。 应用 Session级别的咨询锁应用场景有限,需要手动释放锁(显示调用unlock方
2023-10-31, Views: 930 , Topics: PostgreSQL 锁
-
PostgreSQL pg_locks 查看数据库锁的情况
SQL select class.relname as table_name, stat.query as sql, stat.query_start, cur
2023-10-30, Views: 1043 , Topics: PostgreSQL 锁
-
MySQL 行级锁演示
准备数据 create table tb_user(id int, name varchar(25), data int, primary key(id));
-
MySQL 锁
锁的分类 按锁的粒度来分: 全局锁:锁定数据库中的所有表 表级锁:每次操作锁住整张表 行级锁:每次操作锁住对应的行数据 全局锁 可读不可写。 使用场景 全局
-
Java synchronized 保证可见性
原因 synchronized在代码块执行结束后会将执行结果刷新到主存中。 所以synchronized也和volatile有可见性的作用。 JMM 规范 sy
-
Java 使用 wait 等待会使 synchronized 升级为重量级锁
原因 因为wait方法会让锁对象从owner拥有者变为waitSet队列中等待。 所以必须关联一个Monitor对象,这样synchronized就升级为了重量
-
Java 并发的基石 LockSupport
LockSupport LockSupport类使用了一种名为Permit(许可)的概念来做到阻塞和唤醒线程的功能。 每个线程都有一个许可(Permit)。 p
-
Java 中的锁 StampedLock
主要方法 readLock():获取悲观读锁,阻塞等待。 unlockRead():释放读锁。 writeLock():获取悲观写锁,阻塞等待。 unlock
-
Java 中的锁 ReentrantReadWriteLock 读写锁
读写锁 读读不互斥,读写互斥,写写互斥。 代码示例 public class ReadWriteLockDemo { public static vo
-
Java 中的锁 ReentrantLock
特性 可重入、互斥(读写互斥、写写互斥、读读互斥),只能有一个线程进行操作。 默认是非公平锁,可通过构造函数指定是否是公平锁。非公平锁性能略微好一些,主要是第一
-
Java 中的自旋锁
自旋锁 使用CAS+无限循环组成自旋锁。 原子引用类保存持有锁的线程,其他线程将使用CAS+自旋争夺锁。 示例代码 public class SpinLockD
-
Java 中的死锁
描述 线程A先锁定DeadLock字节码对象,在内部延迟1秒,再锁定Object字节码对象。 线程B先锁定Object字节码对象,在内部延迟1秒,再锁定Dead
-
Java 中的锁 synchronized
锁的状态 无锁状态、偏向锁、轻量级锁、重量级锁。 偏向锁加锁过程 访问Mark Word中偏向锁的标识是否设置成1,锁标志位是否为01,确认为可偏向状态。 如
-
Java 中的锁
关键词和类 synchronized ReentrantLock ReentrantReadWriteLock StampedLock LockSupport
-
缓存穿透、缓存雪崩、缓存击穿、缓存污染
缓存穿透 场景描述 缓存和数据库中都没有的数据,用户不断发起请求。如发起id=-1等不合理数据,导致数据库压力过大。 解决方法 增加传参校验,如Validat
-
MySQL 中的乐观锁和悲观锁
创建测试表 创建product表: CREATE TABLE `product` ( `id` int(11) NOT NULL, `name` var
-
Java synchronized 锁字符串注意点
描述 使用synchronized关键字,根据不同字符串进行上锁。 public static void main(String[] args) { f
-
Redis 分布式锁
单点 Redis 分布式锁 上锁 SET resource_name my_random_value NX PX 30000 解锁 此处为Lua脚本,需通过ev
2019-10-31, Views: 3506 , Topics: Redis Spring Boot 锁