在golang中,sync.Mutex的Lock和Unlock是usaul操作,但是Lock and defer Unlock的正确顺序是什么?

mu.Lock()
defer mu.Unlock()

或者
defer mu.Unlock()
mu.Lock()

哪个最好?

最佳答案

没关系

无论哪种方式,defer都会导致mu.Unlock()在退出当前范围时执行(例如,返回的函数)。

第一种方法是可取的,因为它具有更自然的排序(锁定,然后解锁),以提高可读性。

关于go - 互斥锁。锁定和延迟互斥锁。解锁顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47427211/

10-14 07:50