锁定对特定资源的访问权限,与之进行交互(读或写),然后再次为其他人解锁。
基本上是。
让我感到困惑的是,互斥锁和它应该锁定的值之间似乎没有任何联系。
Mutex只是一个互斥对象,它可以同步对资源的访问。这意味着,如果两个不同的goroutine要锁定互斥锁,则只有第一个可以访问它。现在,第二个goroutine会无限期等待,直到它本身可以锁定互斥体为止。与变量没有任何关系,可以根据需要使用互斥体。例如,仅一个http请求,仅一个数据库读/写操作或仅一个变量分配。尽管我不建议在这些示例中使用互斥锁,但总体思路应该很清楚。
但是看这段代码,似乎会以某种方式将整个程序锁定为仅执行锁下面的行,直到再次运行解锁为止。
并不是整个程序,只有每个想要访问 同一个 互斥锁的goroutine都等到可以。
我想这意味着所有其他goroutine都会暂停片刻,直到再次运行解锁。
不,他们不会暂停。他们执行直到想要访问相同的互斥锁为止。
如果要使用变量将互斥锁专门分组,为什么不创建结构?



