知识卡片

互斥锁保护临界区

专业/工作 · 471.b.2.a.4.a.1.c.1.b.2

内容

互斥锁让同一时刻只有一个 goroutine 访问共享资源,适合保护必须共享的内存状态。发散:锁不是坏味道,坏的是锁保护范围和所有权不清。面对同样的[[竞争状态破坏正确性]]问题,互斥锁比[[原子适合小共享值]]适用范围更广,但开销也更高。

参考来源

- 位置:《Go语言实战》第6章《并发》(源文件:_epub-src/OEBPS/Text/part0016.xhtml) - 结论依据:原文围绕“互斥锁”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的 Go 语言/工程结论,并补充边界或实践启发。 - 原始内容:Int64 的同时调用 LoadInt64 函数,那么原子函数会将这些调用互相同步,保证这些操作都是安全的,不会进入竞争状态。 6.4.2 互斥锁 另一种同步访问共享资源的方式是使用互斥锁( mutex )。互斥锁这个名字来自互斥(mutual exclusion)的概念。互斥锁用于在代码上创建一个……