Web平台多线程的十五年突围:从Web Workers到SharedArrayBuffer的安全博弈
JavaScript从诞生之初就背负着单线程的命运。这个设计决策在1995年看起来理所当然——浏览器只需要处理简单的表单验证和DOM操作。但三十年后,当Web应用需要在浏览器中运行视频编解码、物理模拟、甚至机器学习模型时,单线程的限制就成了一个无法回避的架构瓶颈。 ...
JavaScript从诞生之初就背负着单线程的命运。这个设计决策在1995年看起来理所当然——浏览器只需要处理简单的表单验证和DOM操作。但三十年后,当Web应用需要在浏览器中运行视频编解码、物理模拟、甚至机器学习模型时,单线程的限制就成了一个无法回避的架构瓶颈。 ...
工作窃取算法为何能用O(PD)次窃取完成并行计算:从理论证明到工程实现的二十年演进 2008年,Intel发布TBB(Threading Building Blocks),2011年Java 7引入ForkJoinPool,2018年Rust的Tokio发布多线程运行时——这些看似无关的技术决策背后,都指向同一个调度算法:工作窃取(Work Stealing)。为什么从高性能计算到异步运行时,工作窃取能成为跨领域的通用解法? ...
title: “跳表:概率如何击败确定性复杂度” date: “2026-03-07T04:35:05+08:00” description: “从William Pugh 1990年的原始论文出发,深入解析跳表的概率平衡原理、Redis与LevelDB的技术选型逻辑、与红黑树的权衡分析,以及为什么这种"用随机换简单"的设计哲学在高性能系统中持续发光。” draft: false categories: [“数据结构”, “算法”, “系统设计”] tags: [“跳表”, “Skip List”, “Redis”, “红黑树”, “概率数据结构”, “并发编程”, “LevelDB”] 1989年,马里兰大学的William Pugh向 Communications of the ACM 投递了一篇仅四页的论文。这篇论文提出了一个看似荒谬的问题:能不能用掷硬币的方式,替代红黑树中那些令人头疼的旋转操作? ...
2007年9月,Python创始人Guido van Rossum在一篇博客文章中写下了一段被无数次引用的话: “我会欢迎移除GIL的补丁——但前提是单线程程序的性能不能下降。” ...