汇总java市面上所有的锁名词

简介: 汇总java市面上所有的锁名词

一、乐观锁/悲观锁
乐观锁:我们开发时,默认为乐观锁日常不会更改数据,偶尔更改,那么便会以读为主。 以读为主,那怎么控制同一条数据被重复更改,而且顺序更改呢。 那就有CAS(compare and swith)、这类做法的实现手段为,version、time、或之前拿过来的目标值和要更改数据时的目标值是否是一样。
悲观锁:我们开发时,默认为悲观锁会经常更改数据,为了性能更优,我们会对该代码片段进行上锁。例如我们日常用到的sychornized、ReentrantLock、redislock。

二、公平锁/非公平锁
公平锁就相当于现实中的排队,先来后到;非公平锁就是无秩序,谁抢到是谁的;在reentLock类中公平锁会判断自己是否是在表头,非公平锁则会在执行前判断自己是否能拿到锁。

三、无锁>>偏向锁>>轻量级锁>>重量级锁
synchorized为代表
无锁,自旋锁;
偏向锁,线程id记录到对象头中,假设这个线程后续经常访问这个锁;
轻量级锁,对象先建立一个Lock Record的空间,后续一直CAS进行更新;
重量级锁,线程阻塞被唤醒;

四、可重入锁/不可重入锁
判断锁中的线程是否是当前线程,是当前线程则不锁,从而实现可重入

五、mysql 记录锁、间隙锁、临键锁
记录锁,封锁该行的索引记录;
间隙锁,锁定一段范围内的索引记录;
临键锁,每个数据行上的非唯一索引列上都会存在一把临键锁,锁住左右开闭区间

六、redisson的锁
网上目前资料还没有、并非仔细研读源码。

PS:我们未来的技术知识应当分为,学术研究类型、生产类型、学术辅助生产。网上的知识一知半解,人云亦云。虽然写了这个博客,但心理慌得狠,因为缺乏理论验证环节。先一起学习共勉吧。

相关文章
|
5天前
|
存储 安全 Java
深入理解Java并发编程:线程安全与锁机制
【5月更文挑战第31天】在Java并发编程中,线程安全和锁机制是两个核心概念。本文将深入探讨这两个概念,包括它们的定义、实现方式以及在实际开发中的应用。通过对线程安全和锁机制的深入理解,可以帮助我们更好地解决并发编程中的问题,提高程序的性能和稳定性。
|
9天前
|
缓存 安全 Java
Java并发编程中的锁机制及其应用
传统的锁机制在Java并发编程中扮演着重要角色,但随着技术的发展,新的锁机制和应用不断涌现。本文将深入探讨Java并发编程中常用的锁机制,包括synchronized关键字、ReentrantLock、ReadWriteLock等,并结合实际案例分析其应用场景和优劣势。通过本文的阐述,读者将对Java并发编程中的锁机制有更为深入的了解。
19 0
|
11天前
|
安全 Java 测试技术
Java并发编程:理解线程同步和锁
【5月更文挑战第25天】本文深入探讨了Java并发编程的核心概念,即线程同步和锁。通过详细解释这两种机制,我们能够理解它们如何帮助解决多线程环境中的竞态条件问题。此外,文章还提供了一些示例代码,以展示如何在Java中使用这些技术。
|
15天前
|
Java 开发者
Java并发编程:理解线程同步和锁
【5月更文挑战第22天】本文将深入探讨Java并发编程的核心概念——线程同步和锁。我们将从基本的同步问题开始,逐步深入到更复杂的并发控制技术,包括可重入锁、读写锁以及Java并发工具库中的其他锁机制。通过理论与实例相结合的方式,读者将能够理解在多线程环境下如何保证数据的一致性和程序的正确性。
|
6天前
|
安全 Java 编译器
Java并发编程中的锁优化策略
【5月更文挑战第30天】 在多线程环境下,确保数据的一致性和程序的正确性是至关重要的。Java提供了多种锁机制来管理并发,但不当使用可能导致性能瓶颈或死锁。本文将深入探讨Java中锁的优化策略,包括锁粗化、锁消除、锁降级以及读写锁的使用,以提升并发程序的性能和响应能力。通过实例分析,我们将了解如何在不同场景下选择和应用这些策略,从而在保证线程安全的同时,最小化锁带来的开销。
|
6天前
|
安全 Java 开发者
Java并发编程中的锁优化策略
【5月更文挑战第30天】 在Java并发编程领域,锁机制是实现线程同步的关键手段之一。随着JDK版本的发展,Java虚拟机(JVM)为提高性能和降低延迟,引入了多种锁优化技术。本文将深入探讨Java锁的优化策略,包括偏向锁、轻量级锁以及自旋锁等,旨在帮助开发者更好地理解和应用这些高级特性以提升应用程序的性能。
|
7天前
|
Java 编译器
Java并发编程中的锁优化策略
【5月更文挑战第30天】在Java并发编程中,锁是一种重要的同步机制,用于保护共享资源。然而,不当的使用可能导致性能下降,甚至死锁。本文将探讨Java并发编程中的锁优化策略,包括锁粗化、锁消除、锁降级等方法,以提高程序的性能。
|
8天前
|
安全 Java API
Java 8中的Stream API:简介与实用指南深入理解Java并发编程:线程安全与锁优化
【5月更文挑战第29天】本文旨在介绍Java 8中引入的Stream API,这是一种用于处理集合的新方法。我们将探讨Stream API的基本概念,以及如何使用它来简化集合操作,提高代码的可读性和效率。 【5月更文挑战第29天】 在Java并发编程中,线程安全和性能优化是两个核心议题。本文将深入探讨如何通过不同的锁机制和同步策略来保证多线程环境下的数据一致性,同时避免常见的并发问题如死锁和竞态条件。文章还将介绍现代Java虚拟机(JVM)针对锁的优化技术,包括锁粗化、锁消除以及轻量级锁等概念,并指导开发者如何合理选择和使用这些技术以提升应用的性能。
|
8天前
|
安全 Java 编译器
Java 多线程系列Ⅴ(常见锁策略+CAS+synchronized原理)
Java 多线程系列Ⅴ(常见锁策略+CAS+synchronized原理)
|
8天前
|
Java
Java并发编程中的锁优化策略
【5月更文挑战第28天】在Java并发编程中,锁是一种常用的同步机制,用于保证多个线程之间的数据一致性。然而,锁的使用会降低程序的性能,因为线程在获取锁时可能会阻塞等待。为了提高性能,Java提供了多种锁优化策略,本文将详细介绍这些策略及其使用方法。