[置顶] 书本大纲:从芯片、分布式到云计算AI时代

摘要: 并发编程艺术 内存模型——连接代码与硬件的契约 以可见性、有序性、原子性为基础,通过happens - before规则和volatile/synchronized同步机制,探讨处理器优化与并发安全的关系,介绍多线程程序底层运行逻辑。 并发原语——在混沌中建立秩序 对比Java与Golang并发哲学 阅读全文

posted @ 2025-07-25 11:23 poemyang 阅读(387) 评论(0) 推荐(0)

[置顶] 书本介绍:技术札纪——有限硬件与无限计算的权衡艺术

摘要: 在当前技术飞速发展的时代,开发者面临着一个看似无法调和的难题:一边是有限的硬件与资源,另一边是无限增长的计算与业务需求。如何在秩序、效率和弹性之间做出明智的权衡,不仅是技术的考验,更是一门决策的艺术。本书,便是对这门艺术的思考与记录。 阅读全文

posted @ 2025-07-24 10:50 poemyang 阅读(573) 评论(0) 推荐(0)

2025年10月25日

为什么Java/Python程序无需关心内存释放?揭秘垃圾回收(GC)的核心概念

摘要: 在Java的编程世界里,开发者既无需也无法像C/C++那样手动调用malloc/free来管理内存的分配与回收,这一核心任务完全由Java虚拟机在幕后自动完成。这种自动化设计极大地简化了编码,将开发者从繁琐且极易出错的内存管理中解放出来。然而,这种便利性的背后隐藏着一个经典且复杂的难题:一个动态运行 阅读全文

posted @ 2025-10-25 23:08 poemyang 阅读(15) 评论(0) 推荐(0)

2025年10月23日

jemalloc思想的极致演绎:深度解构Netty内存池的精妙设计与实现

摘要: 内存分配 Netty内存池的核心设计借鉴了jemalloc的设计思想。jemalloc是由Jason Evans在FreeBSD项目中实现的高性能内存分配器,其核心优势在于通过细粒度内存块划分与多层级缓存机制,降低内存碎片率并优化高并发场景下的内存分配吞吐量。 Netty基于jemalloc的多Ar 阅读全文

posted @ 2025-10-23 14:49 poemyang 阅读(112) 评论(0) 推荐(0)

2025年10月22日

“化零为整”的智慧:内存池如何绕过系统调用和GC,构建性能的护城河

摘要: 内存池:精打细算的内存管家 在高性能系统(如网络服务器)的极致优化中,当处理器和I/O的瓶颈被逐一攻克后,内存管理便成为决定系统延迟和吞吐量的最后一道,也是最关键的一道关隘。传统的内存分配方式在这种场景下显得力不从心,催生了通过内存池(Memory Pool)作为管理策略。 在C/C++或Java等 阅读全文

posted @ 2025-10-22 22:12 poemyang 阅读(166) 评论(0) 推荐(0)

2025年10月21日

职责分离的艺术:剖析主从Reactor模型如何实现极致的并发性能

摘要: Reactor单线程模型 在Reactor单线程模型中,所谓的“单线程”主要针对I/O操作而言,即所有的I/O操作(如accept()、read()、write()和connect())都在同一个线程上完成。然而,在当前的单线程Reactor模型中,不仅I/O操作由Reactor线程处理,非I/O的 阅读全文

posted @ 2025-10-21 20:23 poemyang 阅读(92) 评论(0) 推荐(1)

2025年10月20日

从C10K到Reactor:事件驱动,如何重塑高并发服务器的网络架构

摘要: 事件驱动 事件驱动(Event Driven)是一种核心的编程范式,其根本特征是控制反转(Inversion of Control,IoC)。在这种模型中,程序的执行流不再由代码的顺序调用决定,而是由一系列异步发生的事件来驱动。应用程序的角色从主动轮询或等待,转变为被动地对事件做出响应,这构成了现代 阅读全文

posted @ 2025-10-20 21:14 poemyang 阅读(49) 评论(0) 推荐(1)

2025年10月17日

单线程如何撑起百万连接?I/O多路复用:现代网络架构的基石

摘要: I/O多路复用(I/O Multiplexing)是一种允许单个线程同时监视多个文件描述符的I/O模型。其核心价值在于,它将应用程序从低效的I/O等待中解放出来,实现了“一次等待,响应多个事件”的高效并发模式。 要理解其优势,需要对比非阻塞I/O的局限性。虽然非阻塞I/O能避免线程在数据未就绪时阻塞 阅读全文

posted @ 2025-10-17 20:37 poemyang 阅读(309) 评论(0) 推荐(0)

2025年10月16日

你的程序为何卡顿?从LINUX I/O三大模式寻找答案

摘要: I/O交互流程 在LINUX中,内核空间和用户空间都位于虚拟内存中。LINUX采用两级保护机制:0级供内核使用,3级供用户程序使用。每个进程都有独立的用户空间(0~3G),对其他进程不可见,而最高的1G虚拟内核空间则由所有进程和内核共享。 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间。由 阅读全文

posted @ 2025-10-16 21:23 poemyang 阅读(301) 评论(0) 推荐(0)

2025年10月15日

“一切皆文件”:揭秘LINUX I/O与虚拟内存的底层设计哲学

摘要: RPC框架如同构建服务大厦的神经网络,承担着海量服务间通信的重任。它优雅地屏蔽了底层网络通信的复杂性,使开发者能聚焦于业务逻辑的创造。然而,在这份优雅之下,RPC框架的网络模型设计却是决定系统吞吐量、延迟和资源利用率的命脉,其核心在于在有限的硬件资源与无限的数据洪流之间,建立一座高效、动态的桥梁。 阅读全文

posted @ 2025-10-15 17:39 poemyang 阅读(59) 评论(0) 推荐(0)

2025年10月14日

Goroutine间的“灵魂管道”:Channel如何实现数据同步与因果传递?

摘要: Channel是连接Goroutine的“管道”,是CSP理念在Golang中的具象化实现。它不仅是数据传递的队列,更是Goroutine间同步的天然工具,让开发者无需诉诸显式的锁或条件变量。 func main() { ch := make(chan int, 1) // 创建一个int,缓冲区大 阅读全文

posted @ 2025-10-14 22:13 poemyang 阅读(116) 评论(2) 推荐(0)

2025年10月13日

“不要通过共享内存来通信”——深入理解Golang并发模型与CSP理论

摘要: Golang 在设计上另辟蹊径,其并发哲学的核心信条是:“不要通过共享内存来通信,而要通过通信来共享内存。” (Do not communicate by sharing memory; instead, share memory by communicating.) 这一理念源自通信顺序进程(Co 阅读全文

posted @ 2025-10-13 21:15 poemyang 阅读(365) 评论(0) 推荐(0)

导航