Blogs

Condition 源码分析

作者 Siran | 6000字 | 阅读大约需要12分钟 | 归档于并发编程

2020年3月1日

Condition可以替代传统的Object中的wait()、notify()和notifyAll()方法来实现线程间的通信,使线程间协作更加安全和高效。

继续阅读

FutureTask 源码分析

作者 Siran | 3800字 | 阅读大约需要8分钟 | 归档于并发编程

2020年2月15日

FutureTask 是一个可以取消的异步计算任务,实现Future,Runnable。提供超时控制、可以获取线程执行后的返回结果、可以取消。

继续阅读

分布式一致性算法 — Raft

作者 Siran | 8000字 | 阅读大约需要16分钟 | 归档于分布式

2020年2月13日

Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是比 Paxos 更容易理解并且更容易实现。

继续阅读

PriorityQueue 源码分析

作者 Siran | 2900字 | 阅读大约需要6分钟 | 归档于Java

2020年2月12日

PriorityQueue里的每个元素都会进行排序,每次弹出一个元素要么是最大的要么是最小的,取决于排序规则。

继续阅读

CountDownLatch 源码分析

作者 Siran | 4600字 | 阅读大约需要10分钟 | 归档于并发编程

2020年2月5日

CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量。每当一个线程完成了自己的任务后,计数器的值就会减1。当计数器值到达0时,它表示所有的线程已经完成了任务,然后在闭锁上等待的线程就可以恢复执行任务。

继续阅读

Raft 思维导图

作者 Siran | 100字 | 阅读大约需要1分钟 | 归档于分布式

2020年2月5日

继续阅读

ReentrantReadWriteLock 源码分析

作者 Siran | 3100字 | 阅读大约需要7分钟 | 归档于并发编程

2020年2月5日

ReentrantReadWriteLock 是什么?

继续阅读

CyclicBarrier 源码分析

作者 Siran | 2500字 | 阅读大约需要5分钟 | 归档于并发编程

2020年2月4日

CyclicBarrier(回声栅栏)根据Javadoc描述,它会阻塞一组线程直到这些线程同时达到某个条件才继续执行。它就像一个栅栏一样,当一组线程都到达了栅栏处才继续往下走。

继续阅读

ThreadPoolExecutor 源码分析

作者 Siran | 10500字 | 阅读大约需要21分钟 | 归档于并发编程

2020年1月18日

ThreadPoolExecutor中常用参数有哪些,作用是什么?任务提交后,ThreadPoolExecutor会按照什么策略去创建线程用于执行提交任务?

继续阅读

ReentrantLock 源码分析

作者 Siran | 6900字 | 阅读大约需要14分钟 | 归档于并发编程

2020年1月5日

通常使用锁就是 synchronized,经过 jdk 的一系列优化引入偏向锁、轻量级锁、重量级锁等概念,性能也是有很大的提高。

继续阅读