随笔分类 -  JUC

摘要:文章目录 各种锁的理解1、公平锁、非公平锁2、共享锁、独占锁3、可重入锁4、自旋锁自定义简单的锁 5、死锁死锁排查 jps 关于进程、线程、并发、并行的问题 各种锁的理解 1、公平锁、非公平锁 公平锁:非常公平,任何线程获得公平锁,那么就会执行锁中业务直到结束,过程中任何进程都不得干预打扰。不能插队 阅读全文 »
posted @ 2020-06-14 17:40 张还行 阅读(300) 评论(0) 推荐(1) 编辑
摘要:AQS AQS介绍 java.util.concurrent.locks 包中的 AbstractQueuedSynchronizer (抽象队列同步器)类 该类是用于构建锁和同步器的框架。 使用该类可以简单且高效的构造出应用广泛的同步器,比如:ReentrantLock, Semaphore, R 阅读全文 »
posted @ 2020-06-14 17:36 张还行 阅读(661) 评论(0) 推荐(0) 编辑
摘要:文章目录 深入理解CAS JDK1.5 CAS会出现ABA问题 解决ABA 原子引用 - AtomicStampedReference遇到的坑 CAS实现原子操作3大问题 使用synchronized会比CAS操作慢和效率低 深入理解CAS JDK1.5 在计算机科学中,比较和交换(Conmpare 阅读全文 »
posted @ 2020-06-14 17:32 张还行 阅读(359) 评论(0) 推荐(0) 编辑
摘要:文章目录 单例模式 1、饿汉式 2、懒汉式 3、DCL懒汉式 通过反射破坏单实例 第1种 第2种 4、静态内部类 5、枚举 尝试反射获取枚举实例 第一种尝试 第二种尝试 总结 单例模式 单例模式,即单个实例,只有一个实例 1、饿汉式 饿汉模式,可以想象一个很饿的人,需要立马吃东西,饿汉模式便是这样, 阅读全文 »
posted @ 2020-06-14 17:17 张还行 阅读(246) 评论(0) 推荐(0) 编辑
摘要:文章目录 JMM(java memory model) Volatile 关键字 保证可见性 volatile++复合操作不保证原子性 单个volatile操作保证原子性 禁止指令重排 JMM(java memory model) 什么是JMM JMM:java内存模型(java memory mo 阅读全文 »
posted @ 2020-06-14 17:12 张还行 阅读(367) 评论(0) 推荐(0) 编辑
摘要:文章目录 ForkJoinPool类 JDK 1.7 常用方法 ForkJoinTask\ 抽象类 RecursiveAction 抽象类 RecursiveTask\ 抽象类 LongStream 接口 案例 使用ForkJoin,并行Stream计算大数据的和 CompletableFuture 阅读全文 »
posted @ 2020-06-14 17:07 张还行 阅读(537) 评论(0) 推荐(0) 编辑
摘要:文章目录 线程池 1、3大方法 2、7大参数 ThreadPoolExecutor 类 执行过程原理 3、4种拒绝 4、自定义线程池 CPU密集型 IO密集性 混合型 线程池最大线程数应该如何定义? 线程池 3大方法、7大参数、4种拒绝 自定义线程池 1、3大方法 不推荐使用该3大方法,请使用Thr 阅读全文 »
posted @ 2020-06-14 17:03 张还行 阅读(536) 评论(0) 推荐(0) 编辑
摘要:文章目录 JUC常用工具(组件)类 JDK 1.5 1、CountDownLatch 构造方法 常用方法 2、CyclicBarrier 构造方法 常用方法 3、Semaphore 构造方法 常用方法 4、Exchanger - CountDownLatch 与 CyclicBarrier 的区别 阅读全文 »
posted @ 2020-06-14 16:53 张还行 阅读(270) 评论(0) 推荐(0) 编辑
摘要:文章目录 Lock 接口 (重点) 1、ReentrantLock 类 2、Lock与Synchronized的区别 面试 3、防止线程虚假唤醒 解决虚假唤醒分析 面试 4、Condition 接口 JDK 1.5 5、Condition实现精准通知唤醒 6、关于锁的问题 面试 解决集合类线程不安全 阅读全文 »
posted @ 2020-06-14 16:50 张还行 阅读(251) 评论(0) 推荐(0) 编辑
摘要:自定义同步组件 TwinsLock TwinsLock.java 自定义简单的同步组件,该工具至多只允许2个线程同时访问,超过2个线程的访问将被阻塞,加入到同步队列中,这个自定义规则的工具为TwinsLock。 由于允许2个线程同时获取同步锁,所以该同步组件是共享的。 通俗的说:AQS是写同步的规则 阅读全文 »
posted @ 2020-05-01 13:27 张还行 阅读(196) 评论(0) 推荐(0) 编辑

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