一江溪水
12
30
什么是自旋锁 什么是自旋锁
前言阻塞或唤醒一个Java线程需要操作系统切换CPU状态来完成,这种状态转换需要耗费处理器时间。如果同步代码块中的内容过于简单,状态转换消耗的时间有可能比用户代码执行的时间还要长。 自旋锁在有些场景中,同步资源的锁定时间很短,为了这一小段时
2021-12-30
27
悲观锁VS乐观锁 悲观锁VS乐观锁
前言Java中有很多锁,每种锁因其特性的不同,在适当的场景下的效率也有很大的差别。今天我们对比一下乐观锁和悲观锁,看看他们有什么不同和相同。 乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有比较广泛的
2021-12-27
26
JDK锁升级过程 JDK锁升级过程
synchronizedJava对象头synchronized是悲观锁,在操作同步资源之前需要给同步资源先加锁,这把锁就是存在Java对象头里的,对象头主要包括两部分数据: Mark Word(标记字段) Klass Pointer(类型
2021-12-26
04
Redis为什么这么快? Redis为什么这么快?
Redis经常被用作做缓存, 一致性要求不高的场景,还可以当做kv存储使用。 另外, Redis还提供了消息订阅、事务、索引等特性。我们还可以利用集群特性搭建分布式存储服务,实现非强一致性的分布式锁服务。 Redis用到上述场景, 都有一个
2021-12-04