在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/