跳到正文
duang@blog:~$

Duang

help · grep · cat · today · 也可把文章拖进终端

文章

正在写请求过境 · IdleTimeout 与代理 idle

最新速递

7 篇

最近在看的内容。

进入专栏

thinking

17 篇

一点小想法。

进入专栏

Agent 拆解

2 篇

拆开 Agent 项目的循环、工具、状态和工程取舍。

进入专栏

Agent 系统架构设计

4 篇

不绑框架,从定义、光谱到支柱与可靠性,把 Agent 系统拆开再装回去。

进入专栏

Pi 深度解析

3 篇

拆 Pi 的包分层、协议抽象和那些故意不做的东西。

进入专栏

MySQL

5 篇

一条 SQL 从连接到落盘怎么走。

进入专栏

高性能后端实战

3 篇

从度量尺子到 CPU、内存、并发与 IO,示例用 Python / Go 对照。

进入专栏

易混专栏

1 题

把容易搅在一起的概念拆开讲清楚。

进入专栏

后端专栏

5 篇

从一次请求出发,记录服务端边界、时序和真实故障。

进入专栏

前端实验室

4 篇

能直接操作的浏览器实验,以及背后的实现代码。

进入专栏

随笔与其他

6 篇

还没收进大专栏的笔记。

进入专栏

同一段逻辑,Go 和 Python 各写一遍

专栏里的代码示例尽量给两种语言。切换标签,对照着看同一件事在两边怎么落地。

sem := make(chan struct{}, 8)
var wg sync.WaitGroup

for _, u := range urls {
    wg.Add(1)
    go func(u string) {
        defer wg.Done()
        sem <- struct{}{}
        defer func() { <-sem }()
        fetch(u)
    }(u)
}

wg.Wait()