fFee-ops's Blog
乐观锁、悲观锁 乐观锁、悲观锁
乐观锁、悲观锁 基本概念 实现方式 优缺点和适用场景 基本概念乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。 乐观锁:乐观锁在操作数据时非常乐观,认为别人不会同时修改数据。因此乐观锁不会上锁,只是在执行更新的时候判断一
2021-02-09
AQS详解 AQS详解
AQS详解 前置知识 可重入锁 Synchronized的重入的实现机理 LockSupport 线程等待唤醒机制(wait/notify) Object类中的wait和notify方法实现线程等待和唤醒 Condition接
2021-01-09
CompletableFuture CompletableFuture
1. 概念CompletableFuture实现了Future接口,Future是Java5新加的一个接口,它提供了一种异步并行计算的功能。如果主线程需要执行一个很耗时的计算任务,我们就可以通过future把这个任务放到异步线程中执行。主
2020-10-08
分支合并框架 分支合并框架
分支合并框架ForkJoin 原理 相关类 示例 原理Fork:把一个复杂任务进行分拆,大事化小Join:把分拆任务的结果进行合并 fork/join 框架是 Java 7 中引入的 ,它是一个工具,通过 「 分而治之 」 的方法尝
2020-10-08
ThreadPool线程池 ThreadPool线程池
ThreadPool线程池 为什么要用线程池 线程池如何使用 编码实现: 线程池7大重要参数 线程池底层工作原理 线程池用哪个?生产中如设置合理参数 线程池的拒绝策略 在工作中单一的/固定数的/可变的三种创建线程池的方法哪
2020-10-07
BlockingQueue 阻塞队列 BlockingQueue 阻塞队列
BlockingQueue 阻塞队列 阻塞队列 阻塞队列的用处 BlockingQueue的架构图 种类分析 BlockingQueue核心方法 代码 再来单独看看SynchronousQueue 阻塞队列阻塞队列,顾名思义,首
2020-10-06
ReentrantReadWriteLock 读写锁 ReentrantReadWriteLock 读写锁
ReentrantReadWriteLock读写锁 示例 虽然平常的加锁能保证数据一致性,但是呢,效率很低,你写的时候是加锁了,但是加的太死了:就比如你在写,你不准别人来写没问题,但是如果别人不是来写的只是来读的,你一次只准一个人读,
2020-10-06
CountDownLatch/CyclicBarrier/Semaphore CountDownLatch/CyclicBarrier/Semaphore
JUC强大的辅助类 CountDownLatch减少计数 CyclicBarrier循环栅栏 Semaphore信号灯 CountDownLatch减少计数 让一些线程阻塞,直到另一些线程完成一系列操作后才被唤醒 原理 Cou
2020-10-04
NotSafeDemo NotSafeDemo
NotSafeDemo 需求 线程不安全的错误 原理 解决方案 例子 ListNotSafe() SetNotSafe() MapNotSafe() 需求请举例说明集合类是不安全的 线程不安全的错误 java.util.C
2020-10-04
多线程8锁 多线程8锁
多线程8锁 题目 代码 题目在AA线程执行的代码下面有一行Thread.sleep(100);保证了这个题目中的AA能先抢到执行权 1 标准访问,先打印短信还是邮件短信 2 停4秒在短信方法内,先打印短信还是邮件短信 一个对象里
2020-10-02
线程间通信(生产者消费者模型) 线程间通信(生产者消费者模型)
线程间通信 生产者消费者复习 发生问题 解决 生产者-消费者模型 新实现 精准调度 生产者消费者复习package cduck.cn; /** * 题日:现在两个线程,可以操作初始值为零的一个交量, * 实现一个线程对该
2020-10-02
复习卖票问题 复习卖票问题
复习卖票问题 LOCK接口 Lock接口的实现ReentrantLock可重入锁 代码 LOCK接口是什么:锁实现提供了比使用同步方法和语句可以获得的更广泛的锁操作。它们允许更灵活的结构,可能具有非常不同的属性,并且可能支持多
2020-09-30