集合与并发编程

223 阅读1分钟

集合

java集合框架图

image.png

HashMap

基本概念

  • table:存储所有节点数据的数组
  • slot:哈希槽。即table[i]
  • bucket:哈希桶。table[i]上所有元素形成的表或树的集合

image.png

Hash算法

image.png

image.png

并发处理

线程安全

  • 数据单线程内可见
  • 只读对象
  • 线程安全类
  • 同步与锁机制

image.png

AQS

  • Abstract抽象:包含tryAcquire、trRelease等5个抽象方法,具体由子类实现;
  • Queued队列:利用队列来管理竞争共享资源的多线程,这个队列是Node节点的引用虚拟实现;
  • Synchronizer同步器:是一个解决多线程同步问题的工具。

image.png

Lock、AQS与AOS的关系

Lock实现类的内部类继承AQS,AQS继承AOS

image.png

image.png

线程与线程池

image.png

image.png

image.png

image.png

线程池的作用

  1. 利用线程池管理并复用线程、控制最大并发数等。
  2. 增加对线程的管理,快速排查问题。
  3. 实现任务线程队列缓存策略和拒绝机制。
  4. 实现某些与时间相关的功能,定时执行、周期执行等
  5. 隔离线程环境

image.png

image.png