Java并发基础(八)-locks包

本文介绍了Java并发编程中的locks包,包括Condition、LockSupport、ReentrantReadWriteLock、ReentrantLock和StampedLock等核心组件。Condition允许在Lock上创建多个等待集,LockSupport提供线程阻塞和唤醒原语,ReentrantReadWriteLock实现了读写锁,ReentrantLock支持可重入和公平锁,而StampedLock是Java 8引入的高效读写锁。
摘要由CSDN通过智能技术生成

1. 前言

Java锁的种类 java中的锁种类是真的多。而locks包下也有一些。包结构如下:
这里写图片描述

  • AbstractOwnableSynchronizer 一个线程拥有的同步器,这个类提供了创建锁和相关同步器的基础
  • AbstractQueuedLongSynchronizer 所有的同步状态都是用long变量来维护的,而不是int,在需要64位的属性来表示状态的时候会很有用
  • AbstractQueuedSynchronizer 为实现依赖于先进先出队列的阻塞锁和相关同步器(信号量、事件等等)提供的一个框架,它依靠int值来表示状态
  • Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用。这个是被绑定在Lock上一起使用的。
  • Lock 实现了比synchronized更多的功能,需要注意的是,为了确保可以释放锁,需要在finally语句块中unlock。
  • LockSupport LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread.resume所可能引
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值