12、如何用面向对象思想写好并发程序

在工作中,我发现很多同学在设计之初都是直接按照单线程的思路来写程序的,而忽略了本应该重视的并发问题;等上线后的某天,突然发现诡异的Bug,再历经千辛万苦终于定位到问题所在,却发现对于如何解决已经没有了思路。 关于这个问题,我觉得咱们今天很有必要好好聊...

Java并发编程实战

13、理论基础模块热点问题答疑

到这里,专栏的第一模块——并发编程的理论基础,我们已经讲解完了,总共12篇,不算少,但“跳出来,看全景”你会发现这12篇的内容基本上是一个“串行的故事”。所以,在学习过程中,建议你从一个个单一的知识和技术中“跳出来”,看全局,搭建自己的并发编程知识体...

Java并发编程实战

14、Lock和Condition(上):隐藏在并发包中的管程

Java SDK并发包内容很丰富,包罗万象,但是我觉得最核心的还是其对管程的实现。因为理论上利用管程,你几乎可以实现并发包里所有的工具类。在前面[《08 | 管程:并发编程的万能钥匙》]中我们提到过在并发编程领域,有两大核心问题:一个是互斥,即同一时...

Java并发编程实战

15、Lock和Condition(下):Dubbo如何用管程实现异步转同步

在上一篇文章中,我们讲到Java SDK并发包里的Lock有别于synchronized隐式锁的三个特性:能够响应中断、支持超时和非阻塞地获取锁。那今天我们接着再来详细聊聊Java SDK并发包里的Condition,Condition实现了管程模型...

Java并发编程实战

16、Semaphore:如何快速实现一个限流器

Semaphore,现在普遍翻译为“信号量”,以前也曾被翻译成“信号灯”,因为类似现实生活里的红绿灯,车辆能不能通行,要看是不是绿灯。同样,在编程世界里,线程能不能执行,也要看信号量是不是允许。 信号量是由大名鼎鼎的计算机科学家迪杰斯特拉(Dijks...

Java并发编程实战

17、ReadWriteLock:如何快速实现一个完备的缓存

前面我们介绍了管程和信号量这两个同步原语在Java语言中的实现,理论上用这两个同步原语中任何一个都可以解决所有的并发问题。那Java SDK并发包里为什么还有很多其他的工具类呢?原因很简单:分场景优化性能,提升易用性。 今天我们就介绍一种非常普遍的并...

Java并发编程实战
123458