并发编程

 

 

 

 

在多线程的情况下,当多个线程执行了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里面获取元素,缓存有效期到了

 

 

 

 不存储元素  

 

 

 减少一半的开销

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2021-08-01 02:38  悬崖听风098  阅读(30)  评论(0编辑  收藏  举报