3 个用户来信、打开一个新的并发世界你好,我是王宝令。 很高兴能再次收到用户的来信,一下子还是 3 封,真是受宠若惊。 通过大家的来信、留言,我深刻感受到大家学习的欲望和热情,也很感谢你们能跟着我一起,把并发这么难啃的知识点都**“嚼碎了”——“吃下去”——“消化掉”**,变成自己的东...2026-01-19Java并发编程实战
30、线程本地存储模式:没有共享,就没有伤害民国年间某山东省主席参加某大学校庆演讲,在篮球场看到十来个人穿着裤衩抢一个球,观之实在不雅,于是怒斥学校的总务处长贪污,并且发话:“多买几个球,一人发一个,省得你争我抢!”小时候听到这个段子只是觉得好玩,今天再来看,却别有一番滋味。为什么呢?因为其间...2026-01-19Java并发编程实战
31、Guarded Suspension模式:等待唤醒机制的规范实现前不久,同事小灰工作中遇到一个问题,他开发了一个Web项目:Web版的文件浏览器,通过它用户可以在浏览器里查看服务器上的目录和文件。这个项目依赖运维部门提供的文件浏览服务,而这个文件浏览服务只支持消息队列(MQ)方式接入。消息队列在互联网大厂中用的非...2026-01-19Java并发编程实战
32、Balking模式:再谈线程安全的单例模式上一篇文章中,我们提到可以用“多线程版本的if”来理解Guarded Suspension模式,不同于单线程中的if,这个“多线程版本的if”是需要等待的,而且还很执着,必须要等到条件为真。但很显然这个世界,不是所有场景都需要这么执着,有时候我们还需...2026-01-19Java并发编程实战
33、Thread、Per、Message模式:最简单实用的分工方法我们曾经把并发编程领域的问题总结为三个核心问题:分工、同步和互斥。其中,同步和互斥相关问题更多地源自微观,而分工问题则是源自宏观。我们解决问题,往往都是从宏观入手,在编程领域,软件的设计过程也是先从概要设计开始,而后才进行详细设计。同样,解决并发编程...2026-01-19Java并发编程实战
34、Worker Thread模式:如何避免重复创建线程在[上一篇文章]中,我们介绍了一种最简单的分工模式——Thread-Per-Message模式,对应到现实世界,其实就是委托代办。这种分工模式如果用Java Thread实现,频繁地创建、销毁线程非常影响性能,同时无限制地创建线程还可能导致OOM,所...2026-01-19Java并发编程实战
35、两阶段终止模式:如何优雅地终止线程前面两篇文章我们讲述的内容,从纯技术的角度看,都是启动多线程去执行一个异步任务。既启动,那又该如何终止呢?今天咱们就从技术的角度聊聊如何优雅地终止线程,正所谓有始有终。 在[《09 | Java线程(上):Java线程的生命周期》]中,我曾讲过:线程...2026-01-19Java并发编程实战
36、生产者、消费者模式:用流水线思想提高效率前面我们在[《34 | Worker Thread模式:如何避免重复创建线程?》]中讲到,Worker Thread模式类比的是工厂里车间工人的工作模式。但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就是生产者-消费者模式。 生产...2026-01-19Java并发编程实战
37、设计模式模块热点问题答疑多线程设计模式是前人解决并发问题的经验总结,当我们试图解决一个并发问题时,首选方案往往是使用匹配的设计模式,这样能避免走弯路。同时,由于大家都熟悉设计模式,所以使用设计模式还能提升方案和代码的可理解性。 在这个模块,我们总共介绍了9种常见的多线程设计...2026-01-19Java并发编程实战
38、案例分析(一):高性能限流器Guava RateLimiter从今天开始,我们就进入案例分析模块了。 这个模块我们将分析四个经典的开源框架,看看它们是如何处理并发问题的,通过这四个案例的学习,相信你会对如何解决并发问题有个更深入的认识。 首先我们来看看Guava RateLimiter是如何解决高并发场景下的限...2026-01-19Java并发编程实战