摘要:
在本文中,我们将讲解处理高并发问题的另外一种方案,即非阻塞算法的设计与实现,以及在JAVA中的应用。 阅读全文
摘要:
本文将聚焦同步器的设计原理,从现实生活中的问题着手,由浅入深分析AQS的设计初衷与实现原理。本文整体篇幅较长,内容较多。在理解AQS时,建议从问题出发,再去寻找答案、理解答案。 阅读全文
摘要:
本文将通过群雄逐鹿的例子来引出内存中的并发问题,并从软件内存模型和硬件内存架构的角度解释两者的矛盾所在,以及矛盾的调和之道。 阅读全文
摘要:
从Java8开始,JDK引入了很多新的特性,包括lambda表达式、流式计算以及CompletableFuture等,本文将为你介绍的是CompletableFuture的核心原理与花式玩法。 阅读全文
摘要:
本文大约2万字,篇幅较长,建议先看目录或先收藏。本文将首先从分治算法开始介绍,接着体验ForkJoinPool中自定义任务的实现,最后再深入到Java中去理解ForkJoinPool的原理和用法。 阅读全文
摘要:
本文将从线程池的应用场景和设计原理出发,先带大家手撸一个线程池,在理解线程池的内部构造后,再深入剖析Java中的线程池。全文大约2.5万字,篇幅较长,在阅读时建议先看目录再看内容。 阅读全文
摘要:
说起ThreadLocal,相信你对它的名字一定不陌生。在并发编程中,它有着较高的出场率,并且也是面试中的高频面试题之一,其重要性不言而喻。在本文中,我将和你一起学习它的用法及原理,啃下这块硬骨头。 阅读全文
摘要:
在前面的文章中,我们已经介绍了ReentrantLock,CountDownLatch,CyclicBarrier,Semaphore等同步工具。在本文中,将为你介绍另一个同步工具Exchanger. 阅读全文
摘要:
本文将给你介绍CyclicBarrier的用法和原理,它在能力上和CountDownLatch既有相似之处,又有着明显的不同,值得你一览究竟。 阅读全文
摘要:
在本文中,将为你介绍CountDownLatch的用法。CountDownLatch是JUC中的一款常用工具类,当你在编写多线程代码时,如果你需要协调多个线程的开始和结束动作时,可以考虑它。 阅读全文
摘要:
在上一篇文章中,我们介绍了阻塞队列。如果你阅读过它的源码,那么你一定会注意到其中的condition变量以及它在读写队列时的使用。 阅读全文
摘要:
在线程的同步中,阻塞队列是一个绕不过去的话题,它是同步器底层的关键。所以,我们在本文中将为你介绍阻塞队列的基本原理,以了解它的工作机制和它在Java中的实现。本文稍微有点长,建议先了解大纲再细看章节。 阅读全文
摘要:
在并发编程中,信号量是线程同步的重要工具。在本文中,我将带你认识信号量的概念、用法、种类以及Java中的信号量。 阅读全文
摘要:
在前面的文章中,我们提到了锁的可重入问题,并作了简单介绍。鉴于锁的可重入是一个重要概念,所以本文把拿出来做一次单独讲解,以帮助你彻底理解它。 阅读全文