java锁

问题描述

各位大神谁能给个好答案,详细一点的?java有几种锁,没种锁的应用场景是什么?

解决方案

解决方案二:
原生的JAVA只有一种锁。concurrent包里分为读锁和写锁。你也可以根据他的接口来实现自己的锁
解决方案三:
我想知道关于锁的种类,机制,应用场景都是什么,详细一点的。比如:读锁,写锁,悲观锁,乐观锁,对象锁什么的,全面一点的。

时间: 2024-08-02 00:05:08

java锁的相关文章

synchronized java锁-synchronized java锁

问题描述 synchronized java锁 synchronized(xxxxx.class){ xxxx; } 跟 private static String aaaaaa = new String("aaaaaaa"); synchronized(aaaaaa){ xxxx; } 这两个有什么区别?

java 锁

什么是线程安全? 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的.代码本省封装了所有必要的正确性保障手段(互斥同步等),令调用者无需关心多线程的问题,更无需自己实现任何措施来保证多线程的正确调用. 如何来实现线程安全? 我们应用最多的就是互斥锁: java的互斥锁的主要有synchronized,和JUC 中的lock两种: 加锁的原理是 对象

java锁的种类以及辨析(一):自旋锁

作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 1.自旋锁 自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区.如下 01 public class SpinLock { 02   03   private

Java锁的种类以及辨析(二):自旋锁的其他种类

作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 2.自旋锁的其他种类 上篇我们讲到了自旋锁,在自旋锁中 另有三种常见的锁形式:TicketLock ,CLHlock 和MCSlock Ticket锁主要解决的是访问顺序的问题,主要的问题是在多核cpu上

Java锁的种类以及辨析(四):可重入锁

作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 四.可重入锁: 本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock. 可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响

Java锁的种类以及辨析(三):阻塞锁

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 三.阻塞锁: 阻塞锁,与自旋锁不同,改变了线程的运行状态. 在JAVA环境中,线程Thread有如下几个状态: 1,新建状态 2,就绪状态 3,运行状态 4,阻塞状态 5,死亡状态 阻塞锁,可以说是让线程进入阻塞状态进

Java锁的种类以及辨析

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA中常见的锁以及其特性,为大家答疑解惑. 1.自旋锁 2.自旋锁的其他种类 3.阻塞锁 4.可重入锁 5.读写锁 6.互斥锁 7.悲观锁 8.乐观锁 9.公平锁 10.非公平锁 11.偏向锁 12.对象锁 13.线程锁 14.锁粗化 15.轻量级锁 16.锁消除

Java锁之阻塞锁介绍和代码实例_java

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 阻塞锁 阻塞锁,与自旋锁不同,改变了线程的运行状态. 在JAVA环境中,线程Thread有如下几个状态: 1,新建状态 2,就绪状态 3,运行状态 4,阻塞状态 5,死亡状态 阻塞锁,可以说是让线程进入阻塞状态进行等待

Java锁之可重入锁介绍_java

锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具体性质以及类型却很少被提及.本系列文章将分析JAVA下常见的锁名称以及特性,为大家答疑解惑. 四.可重入锁: 本文里面讲的是广义上的可重入锁,而不是单指JAVA下的ReentrantLock. 可重入锁,也叫做递归锁,指的是同一线程 外层函数获得锁之后 ,内层递归函数仍然有获取该锁的代码,但不受影响. 在JAV