标签: sync
与该标签相关的所有文章 "sync".
-
tokio(三):I/O、定时器、同步原语与 select!
tokio 的 I/O 驱动将 mio 的 Poll 包装为与调度器集成的 Reactor,通过 Waker 机制在 fd 就绪时唤醒对应 task。定时器使用六级分层时间轮(每级 64 slot),所有操作 O(1)。同步原语(Mutex / channel / Semaphore)专为 async 设计,核心区别是等待时不阻塞线程。select! 宏是 tokio 最强大也最危险的组合器,理解其取消语义是正确使用的前提。
-
Go 并发(二):sync 包与并发原语
sync 包的每个原语都围绕同一个核心模式:fast path 用 atomic 无锁操作,slow path 用 runtime semaphore 休眠/唤醒。Mutex 通过 normal/starvation 双模式平衡吞吐与尾延迟;sync.Map 在 Go 1.24 重写为 HashTrieMap(并发哈希字典树);sync.Pool 利用 per-P 本地存储 + victim cache 实现两轮 GC 缓冲。理解这些内部结构,才能在正确的场景选择正确的原语。