https://www.gravatar.com/avatar/7a0c24f697ea1587001c36d00039b60f?s=240&d=mp

Go 并发原语实战:sync.Pool、sync.Once 与 sync.Cond 的正确打开方式

Go 的并发编程有两套武器库:一套是 CSP 模型的 goroutine + channel,另一套是标准库 sync 包提供的底层原语。大多数教程把焦点放在 channel 上,但真正到生产环境里,sync.Poolsync.Oncesync.Cond 这三个原语用得反而不少——它们各自解决 channel 不擅长的问题。本文用实际代码逐一拆解。

程序员也配点25块的外卖?

/post/2026/07/17/programmer-25-yuan-delivery/featured.jpg

又是一个阳光灿烂的中午,刷了一上午的 GitHub Trending,咖啡也灌了好几杯,肚子早已经咕咕作响了。今天中午吃点什么呢,打开外卖 App 翻了翻,公司楼下新开了一家轻食沙拉,满减后 25 块,看起来还不错。

就在我准备下单的时候,余光瞥到了旁边工位的老王。

老王正偷偷摸摸打开同一家店,手指悬在「25 元烟熏鸡胸肉沙拉」上面,犹豫着要不要点。

我认出了他。发际线已经退到了头顶三分之二的位置,颈贴从衣领里露出一角,保温杯里泡着枸杞和菊花,屏幕上开着一堆 Terminal——这些特征都在大声宣告他的身份:一个 2026 年的程序员。

我默默地转过头去,用犀利的眼神和他做着底层通信。我传达的信息很明确:

“你,也配点 25 块的外卖?”