摘要: JMH Java准测试工具套件 什么是JMH 官网 http://openjdk.java.net/projects/code-tools/jmh/ 创建JMH测试 创建Maven项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmln 阅读全文
posted @ 2022-01-02 14:46 辽河老男孩 阅读(103) 评论(0) 推荐(0)
摘要: Executor public class T01_MyExecutor implements Executor{ public static void main(String[] args) { new T01_MyExecutor().execute(()->System.out.println 阅读全文
posted @ 2021-12-31 00:37 辽河老男孩 阅读(39) 评论(0) 推荐(0)
摘要: Vector和HashTable 自带锁,现基本不用 HashMap ConcurrentHashMap 内部用了CAS,高并发,查询效率高 ConcurrentSkipListMap 高并发并且有序(代替TreeMap,因为TreeMap用了红黑树,较为复杂,因此没有ConcurrentTreeM 阅读全文
posted @ 2021-12-28 23:29 辽河老男孩 阅读(66) 评论(0) 推荐(0)
摘要: AQS(CLH) 底层:CAS+volatile 图解 aqs核心上是一个state(volatile),以及监控这个state的一个双向链表,每个链表有一个节点,每个节点装的是线程,那么每个线程要获得锁,要等待,都要进入到这个等待队列中。 (在添加队列尾要关注前置节点,进行CAS防止线程打断,自旋 阅读全文
posted @ 2021-12-28 22:41 辽河老男孩 阅读(34) 评论(0) 推荐(0)
摘要: 锁的分类: 乐观锁(CAS),悲观锁(synchronized),自旋锁(CAS),读写锁(共享锁、排他锁),分段锁(LongAdder,ConcurrentHashMap) ReentrantLock 可重入锁 reentrantlock用于替代synchronized,底层CAS wait/no 阅读全文
posted @ 2021-12-21 23:32 辽河老男孩 阅读(71) 评论(0) 推荐(0)
摘要: volatile 作用: 保证线程可见性(MESI缓存一致性协议) M: 被修改(Modified) E: 独享的(Exclusive) S: 共享的(Shared) I: 无效的(Invalid) 禁止指令重排序-CPU DCL单例 Double Check Lock(双重检查) 原语指令 (读写 阅读全文
posted @ 2021-12-19 21:41 辽河老男孩 阅读(33) 评论(0) 推荐(0)
摘要: 线程概念 通俗来说,就是一个程序内不同的执行路径 线程生命周期 synchronized锁升级概念 sync(Object) 0.首先无锁状态(markword)00 1.记录markword(线程ID) 偏向锁 01 2.如果有线程争用,锁升级 自旋锁(轻量级锁-用户态,未经内核) 10 3.自旋 阅读全文
posted @ 2021-12-19 21:33 辽河老男孩 阅读(39) 评论(0) 推荐(0)