02 2020 档案

134 并发容器类~list set queue
摘要:arraylist: 底层object数组, ensureCapcityInternal 判断是否数组扩容 copyonwritearraylist: copyonwrite机制: 当进行资源写入时,系统生成资源副本进行修改。保证写入原子性。写入加锁 hashset: 底层实现:hashmap K+ 阅读全文

posted @ 2020-02-21 19:38 李某人的窥视 阅读(112) 评论(0) 推荐(0) 编辑

133 并发容器类 map
摘要:HashMap: jdk1.7 底层存储 entry数组 查询使用hash表算法 h&(lenght-1) 取模计算数组下标 下标相同,组成链表,顺序查找 k,v总数超过一定比例 引发数组扩容 负载因子*length 扩容方法 transfor 遍历全部元素 重新取模 放入数组 扩容中无法保证数据问 阅读全文

posted @ 2020-02-20 19:49 李某人的窥视 阅读(110) 评论(0) 推荐(0) 编辑

132 AQS抽象队列同步器
摘要:1、缓存雪崩、缓存击穿之类的问题。 2、锁降级的情况。 写锁内部追加读锁(读写互斥的特例 ,必须同一个线程); 模板方法模式: 抽取公共代码。 jdk中使用链表实现队列。 普通队列使资源排队。 AQS使用追加的逻辑让线程排队 jdk AQS中只有一个int state 读写锁进行位操作 前2字节 后 阅读全文

posted @ 2020-02-20 17:35 李某人的窥视 阅读(99) 评论(0) 推荐(0) 编辑

131 Lock接口相关
摘要:Lock接口 lock() 没完没了的试 挂起 trylock() 一次不成就算了 trylock(time,timeunit) 超时后就算了 lockinterruptibly() 被动等通知 可中断 newCondition 等待池。如果唤醒和挂起倒置 会死锁 reentrantL lock() 阅读全文

posted @ 2020-02-11 19:48 李某人的窥视 阅读(88) 评论(0) 推荐(0) 编辑

123 java锁synchronized相关内容
摘要:自旋锁:循环等待,不断尝试获取,成功后退出。 乐观锁: 修改数据时发现数据变化则重读数据并修改 假定不冲突 悲观锁:从读数据开始就加锁 -- 假定冲突 独占锁:一把用写,其他线程不能加锁。 共享锁:读,可以加读锁,但不能加写锁。 (不)可重入锁:已经获取锁的线程未释放前重新获取锁,是否阻塞。reen 阅读全文

posted @ 2020-02-11 17:02 李某人的窥视 阅读(126) 评论(0) 推荐(0) 编辑

122原子性操作的一些记录
摘要:1、i++javap后的指令码,分别为操作数栈内 堆内存取i, 存入常量1,执行加法,写回堆内存多步操作。非原子性,会有线程问题。 处理办法,加锁(synchronize,ReentrantLock)或者atomicInteger。 或者使用cas(compare and swap)操作(-硬件同步 阅读全文

posted @ 2020-02-10 19:53 李某人的窥视 阅读(132) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示