如果让我从头再来学习并发编程

作者:桦说编程日期:2025/11/18

大学时,我学习了一本国外的教科书,书名叫做《计算机网络——自顶向下方法》,这本书改变了我看待学习的角度。学习的顺序不是一成不变的,常规的路线通常从底层学习,这本书从应用层面入手,逐步讲解到底层,以一种对常规学习路线相反的方向学习,在我看来恰恰学习计算机网络最轻松上手的路径。很多时候我们追求一步到位,鞭辟入里的理解,反而忽略对于初学者,最佳的学习路线往往是兴趣与试错、感性和求索交织的,认识是逐渐深刻的。

知之者往往陷入知识的诅咒,知道的内容很难遗忘,甚至忘记了自己也是从不理解到懂的。有些书籍和文章对于初学者来说是不友好的,它们往往默认你掌握了很多前置知识。如果让我重头学习并发编程,我希望有类似自顶向下的学习路线。

以下是我总结的学习路线,感兴趣的朋友可以参考:

一、基础(并发与并行,性能与瓶颈,SIMD,MISD,进程、线程模型,虚拟线程,生命周期,上下文切换的开销有多大,跳过同步器、JMM等底层内容)
二、常用的并发模式

  1. 单线程(单线程实现简单且高效,很多多线程问题可以使用单线程解决)
  2. ThreadLocal/ScopedValue/TTL
  3. 消息队列(生产者消费者模式)
  4. 结构化并发(任务编排、资源安全管理、可观测性、快速失败思想)
  5. 函数式解决方案(纯函数、不可变对象、CopyOnWrite)
  6. 执行器与线程池(分离任务与执行的思想、资源管理与生命周期、多种执行器的特点(缓存执行器、固定线程执行器、线性执行器、直接执行器)、舱壁模式)
  7. 异步编程:CompletableFuture/ListenableFuture(函数式思想、回调地狱、任务编排/拆分、取消传播)
  8. 调度器(ScheduledExecutorService(常常被忽略却很有用),资源管理与调度算法)
  9. 延迟计算与记忆化,缓存与SingleFlight模式
  10. ForkJoin框架,并行流,分治思想
  11. EventLoop

三、并发集合类,使用与陷阱,阻塞队列
四、原子操作与原子类
五、锁(临界区、锁接口设计、锁的特点、可重入锁、读写锁、等待队列、条件队列,原生隐式同步锁,选择/构造线程安全的数据结构)
六、同步器和相关类(信号量、mutex、几种栅栏)
七、活性问题:死锁、饥饿、活锁,如何避免
八、性能优化、测试、监控、debug
九、底层实现原理(可见性、原子性、有序性)JMM,volatile实现(可见性窗口技巧),竞争条件,happens-before,DCL,VarHandler


如果让我从头再来学习并发编程》 是转载文章,点击查看原文


相关推荐


Python 的内置函数 setattr
IMPYLH2025/11/17

Python 内建函数列表 > Python 的内置函数 setattr Python 的内置函数 setattr() 用于动态设置对象的属性值。该函数接受三个参数:对象、属性名称字符串和属性值。当我们需要在运行时为对象添加或修改属性时,setattr() 提供了灵活的操作方式。 基本语法: setattr(object, attribute_name, value) 详细说明: 参数解析: object:需要设置属性的目标对象attribute_name:字符串形式的属性名


Bash 的 chown 命令
hubenchang05152025/11/16

#Bash 的 chown 命令 chown [OPTION]... [OWNER][:[GROUP]] FILE... 功能 修改文件的所有者和所属组。 类型 可执行文件(/usr/bin/chown),属于 coreutils。 参数 OPTION 选项: -c, --changes - 仅对发生变化的文件打印详细信息 -f, --silent, --quiet - 忽略大部分错误信息 -v, --verbose - 打印详细信息 --dereference - 影响符号链接引用的源文


【软件测试】《集成测试全攻略:Mock/Stub 原理 + Postman/JUnit/TestNG 实战》
云知谷2025/11/15

集成测试:一场“团队协作”的精彩大戏! 想象一下,你正在筹备一场超级英雄电影的首映礼!每个超级英雄(比如钢铁侠、美国队长、雷神)都是独立的组件,他们各自的能力(功能)都经过了严格测试(单元测试),证明他们“单兵作战”很强。 但是!电影上映时,他们必须一起合作——钢铁侠开战甲,美国队长指挥战术,雷神召唤闪电,才能打败灭霸(系统级问题)。如果他们配合不好(比如钢铁侠的战甲和美国队长的盾牌不兼容,或者雷神的闪电把战甲炸了),那电影就砸了! 这时候,集成测试(Integration Testing


DeepSeek-OCR实战(01):基础运行环境搭建-Ubuntu
paopao_wu2025/11/13

DeepSeek-OCR实战是一个系列文章,包含了从基础运行环境搭建到应用接入全过程。本章为:基础运行环境搭建,操作系统采用 Ubuntu Server 24 环境版本ubuntu-24.04.3 Serverrelease 10.0Cuda11.8显卡 RTX 2080 Ti 22G驱动 NVIDIA-Linux-x86_64-580.105.08conda25.9.1git2.47.3 1.操作系统基础安装 安装 Ubuntu 24 Server 版本后(全部默认安装),查看一下磁盘


圆桌论坛精华实录 | AI是重构运维逻辑的颠覆性革命?博睿数据与行业大咖亲授“AI+可观测性”的破局之道
Bonree博睿数据2025/11/12

全文约6500字  阅读时间约15分钟。 当前,人工智能正处于高速发展阶段,以前所未有的深度与广度重塑商业规则,推动企业数字化转型从规模化扩张迈入精细化深耕。面对这场汹涌而来的智能变革,运维领域正面临一道核心命题:AI究竟是提升效率的辅助工具,还是重构运维逻辑的颠覆性革命? 国内金融、制造等关键行业已步入数字化深水区,却普遍陷入运维复杂度激增、故障定位滞后、数据价值难以转化等行业焦虑。如何让AI技术真正落地运维场景?如何通过可观测性打通全链路数据孤岛?如何平衡技术创新与业务实用价值?


对于数据结构:堆的超详细保姆级解析——下(堆排序以及TOP-K问题)
ShineWinsu2025/11/10

开篇介绍: hello 大家,我们又见面了,在上一篇博客中,我们共同探索了如何实现堆这么一个数据结构,相信大家经过上篇博客的学习,对堆的了解程度以及掌握程度,都有了极大的水平提升。 那么堆,有什么用呢?首先,作为一个数据结构,它肯定具有存储数据的功能,这是毋庸置疑的,但是呢,我们知道,堆有大堆和小堆之分,那么那么,这一个知识点,蕴含着什么秘密呢? 诶,不错,就是我们标题所说的——堆排序,我们之前学过了冒泡排序以及qsort函数排序,但是呢说实话,这两种排序方式,效率都不高,说难听一点就是在


【Linux】进程初阶(1)——基本进程理解
终焉代码2025/11/8

目录 前言 1.1进程基本理解 1.2进程描述 1.3查看进程 1.4通过系统调用的基本进程操作 1.4.1通过系统调用获取pid 1.4.2通过系统调用创建进程 前言 操作系统对计算机软件与硬件进行管理的方式是先描述再组织,而PCB就是那个"描述",那到底什么是PCB?PCB又在描述什么呢?更多Linux学习内容看准Linux专栏 1.1进程基本理解 在操作系统中,我们运行的一个个软件本质上都是程序。例如我们在windows上打开浏览器时,本质是


Bash 的 cd 命令
hubenchang05152025/11/6

#Bash 的 cd 命令 cd [-L|-P] [DIRECTORY] 功能 切换工作目录。 类型 Bash 内置命令。 参数 OPTION 选项: -L - 逻辑路径;在跟踪符号链接之前解析 ..(默认) -P - 物理路径;在跟踪符号链接之后解析 .. DIRECTORY - 要切换到的目录路径;省略表示切换到用户目录,- 表示切换到上次的工作目录 #示例 基本示例 $ pwd # 查看当前路径 /home/user/primer


规训 AI Agent 实践
清沫2025/11/1

AI 编程工具目前的发展可谓是三十年河东三十年河西,时不时就会有爆炸性的能力提升。初步使用,效果极其惊艳,随着使用的加深,就会发现 AI 会时不时犯蠢。本文总结 AI 协作的一些实践,希望帮助你让 AI 成为更可靠的编程伙伴。 别着急动手, 先制定计划 很多人使用 AI 编程工具时,习惯直接让 AI "帮我实现 xxx 功能",然后 AI 就立即开始写代码。这种方式在简单需求下可以工作,但面对复杂任务时容易出问题。等待十几分钟漫长的生码过程后,发现结果与预期相差甚远,既费时又费 token。 因


Nginx 高效动静分离:从原理到实战
银河技术2025/10/30

Nginx 高效动静分离:从原理到实战 Nginx 动静分离是 Web 性能优化中的经典策略,合理配置可显著提升网站性能、减轻应用服务器压力,并便于后续扩展与运维。本文将从 原理、配置、实战案例 以及 优化技巧 全面解析 Nginx 动静分离。 一、动静分离原理 1. 什么是动静分离? 动态资源(动):需要经过后台程序处理或数据库交互生成的内容,通常是非静态的。例如: /api/userinfo /search?keyword=abc *.jsp, *.php, *.do

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0