Day17并发与集合
集合的规约
首先看集合的总览图
关于数据结构和时间复杂度
从最好到最坏常用算法复杂度为
- 常数级O(1)
- 对数级O(logN)
- 线性级O(N)
- 线性对数级O(NLogN)
- 平方级o(N²)
- 指数级O(2N)
- 阶乘级O(N!)
HashMap的基本概念
哈希类集合的三个基本存储概念
名词 | 说明 |
---|---|
table | 存储所有节点数据的数组 |
slot | 哈希槽,即table[i]这个位置 |
buckeet | 哈希桶,table[i]上所有元素形成的表或树的集合 |
HashMap的主干是一个Entry数组,Entry是HashMap的基本组成单元,每一个Entry包含Node内部类
并发处理
概念梳理:
- 并发:某个时间段内,多任务交替处理的能力,
- 并行:同时处理多任务的能力
线程安全:
多个线程轮流占用cpu的计算资源,可能会出现某个线程尚未执行完就不得不中断的情况,容易导致线程的不安全。
四个方面考量高并发场景下线程安全
- 数据单线程内可见
- 只读对象
- 线程安全类
- 同步与锁机制
java常用锁实现
- juc包中的锁类
- 同步代码块