【高并发】10 AQS(AbstractQueuedSynchronized) 介绍

一、队列

1、Sync queue 、Condition queue

waitStatus pre next thread nextWaiter
waitStatus pre next thread nextWaiter
waitStatus pre next thread nextWaiter
waitStatus pre next thread nextWaiter
waitStatus pre next thread nextWaiter

2、使用Node实现FIFO队列,可以用于构建锁或者其他同步装置的基础框架

3、利用了一个int类型表示状态

4、使用方法是继承

5、子类通过继承并通过实现它的方法管理其状态{acquire 和release}的方法操纵状态

6、可以同时实现排他锁和共享锁模式(独占、共享)

二、AQS 同步组件

1、CountDownLatch

2、Semaphore

信号量 控制操作某个资源并发线程的个数

3、CyclicBarrier

多个线程相互等待 等待到了某个值

4、ReentrantLock

5、Condition

6、FutureTask

三、CountDownLatch 和 CyclicBarrier 的区别

四、ReentrantLock 与锁

1、 可重入性

2、锁的实现

3、性能的区别

4、功能的区别

5、ReentrantLock 独有的功能

  1. 可指定是公平锁还是非公平锁
  1. 提供了一个Condition类,可以分组唤醒需要唤醒的线程
  1. 提供能够中断等待的线程的机制,lock.lockInterruptibly()

五、FutureTask

1、Callable 与Runnable 接口对比

2、Future 接口

3、FutureTask 类

六 Fork/Join框架

1、双端队列

2、充分利用线程

3、线程一重队列头部拿任务,当线程二执行完自己的任务从队列一的尾部拿任务。

Thread one
队列一 头 尾
Thread two
队列二 头 尾
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值