并发编程(七)共享模型之工具(JUC)

并发编程(七)共享模型之工具(JUC),第1张

并发编程(七)共享模型之工具(JUC) 一、AQS 原理 1. 概述

全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架。

特点:

(1)用 state 属性来表示资源的状态(分独占模式和共享模式),子类需要定义如何维护这个状态,控制如何获取锁和释放锁。

①getState:获取 state 状态

②setState:设置 state 状态

③compareAndSetState:cas机制设置 state 状态

④独占模式是只有一个线程能够访问资源,而共享模式可以允许多个线程访问资源

(2)提供了基于 FIFO 的等待队列,类似于 Monitor 的 EntryList

(3)条件变量来实现等待、唤醒机制,支持多个条件变量,类似于 Monitor 的 WaitSet

子类主要实现这样一些方法(默认抛出 UnsupportedOperationException)

(1)tryAcquire

(2)tryRelease

(3)tryAcquireShared

(4)tryReleaseShared

(5)isHeldExclusively

 

2. 实现不可重入锁 2.1 自定义同步器

2.2 自定义锁

3. 心得 3.1 起源 3.2 目标 3.3 设计


二、ReentrantLock 原理


三、读写锁


四、Semaphore


五、CountdownLatch


六、CyclicBarrier

七、线程安全集合类概述


八、ConcurrentHashMap


九、BlockingQueue


十、ConcurrentlinkedQueue


十一、CopyOnWriteArrayList

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5685696.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存