
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
接口与类的调用在java并发编程开发项目中是非常常见的一种开发需求,而今天我们就通过案例分析来了解一下,java并发编程常见的接口与类都有哪些类型。
1、接口:Condition
Condition为接口类型,它将Object监视器方法(wait、notify和notifyAll)分解成截然不同的对象,以便通过将这些对象与任意Lock实现组合使用,为每个对象提供多个等待set(wait-set)。其中,Lock替代了synchronized方法和语句的使用,Condition替代了Object监视器方法的使用。可以通过await(),signal()来休眠/唤醒线程。
2、接口:Lock
Lock为接口类型,Lock实现提供了比使用synchronized方法和语句可获得的更广泛的锁定操作。此实现允许更灵活的结构,可以具有差别很大的属性,可以支持多个相关的Condition对象。
3、接口:ReadWriteLock
ReadWriteLock为接口类型,维护了一对相关的锁,一个用于只读操作,另一个用于写入操作。只要没有writer,读取锁可以由多个reader线程同时保持。写入锁是独占的。
4、抽象类:AbstractOwnableSynchonizer
AbstractOwnableSynchonizer为抽象类,可以由线程以独占方式拥有的同步器。此类为创建锁和相关同步器(伴随着所有权的概念)提供了基础。AbstractOwnableSynchronizer类本身不管理或使用此信息。但是,子类和工具可以使用适当维护的值帮助控制和监视访问以及提供诊断。
5、抽象类(long):AbstractQueuedLongSynchronizer
AbstractQueuedLongSynchronizer为抽象类,以long形式维护同步状态的一个AbstractQueuedSynchronizer版本。此类具有的结构、属性和方法与AbstractQueuedSynchronizer完全相同,但所有与状态相关的参数和结果都定义为long而不是int。当创建需要64位状态的多级别锁和屏障等同步器时,此类很有用。
6、核心抽象类(int):AbstractQueuedSynchonizer
AbstractQueuedSynchonizer为抽象类,其为实现依赖于先进先出(FIFO)等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架。此类的设计目标是成为依靠单个原子int值来表示状态的大多数同步器的一个有用基础。
7、锁常用类:LockSupport
LockSupport为常用类,用来创建锁和其他同步类的基本线程阻塞原语。LockSupport的功能和"Thread中的Thread.suspend()和Thread.resume()有点类似",LockSupport中的park()和unpark()的作用分别是阻塞线程和解除阻塞线程。但是park()和unpark()不会遇到“Thread.suspend和Thread.resume所可能引发的死锁”问题。
8、锁常用类:ReentrantLock
ReentrantLock为常用类,它是一个可重入的互斥锁Lock,它具有与使用synchronized方法和语句所访问的隐式监视器锁相同的一些基本行为和语义,但功能更强大。
9、锁常用类:ReentrantReadWriteLock
ReentrantReadWriteLock是读写锁接口ReadWriteLock的实现类,它包括Lock子类ReadLock和WriteLock。ReadLock是共享锁,WriteLock是独占锁。
10、锁常用类:StampedLock
它是java8在java.util.concurrent.locks新增的一个API。StampedLock控制锁有三种模式(写,读,乐观读),一个StampedLock状态是由版本和模式两个部分组成,锁获取方法返回一个数字作为票据stamp,它用相应的锁状态表示并控制访问,数字0表示没有写锁被授权访问。在读锁上分为悲观锁和乐观锁。
11、工具常用类:CountDownLatch
CountDownLatch为常用类,它是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
12、工具常用类:CyclicBarrier
CyclicBarrier为常用类,其是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点(commonbarrierpoint)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时CyclicBarrier很有用。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。