并发编程
在多线程的情况下,当多个线程执行了wait()方法后,需要其它线程执行notify()或者notifyAll()方法去唤醒,假如被阻塞的多个线程都被唤醒,但实际情况是被唤醒的线程中有一部分线程是不应该被唤醒的,那么对于这些不应该被唤醒的线程而言就是虚假唤醒。
wait 释放锁 需要notifyn或notifyAll()方法唤醒 sleep不释放锁,等待一段时间继续向下执行
threadLocal和线程池用的比较多
耗时操作 异步
初始话容量 负载因子 并行度(多少把锁)】
segent初始化
所分段 1.7 sgement实现reentraintlock 一个segment包含多个hashentry数组 ,每个hashentry是包含链表的元素 我们要对hashentry里面的数据修改的话就会对应segment(f分段锁)
元素在segment散列开,但是并没有在hashentry散列开
构造函数
node设置cas的操作,为了线程安全
且更新tail成功
更新失败也没关系,说明有其他线程更新tail节点
减少写 增加读
能从 queue里面获取元素,缓存有效期到了
不存储元素
减少一半的开销