2016-07-08  本文已影响82人  殷临风

"锁" 在线程同步的时候是非常重要的, 如果是文件锁能够防止误写, 当然锁的用法也比较简单, 操作前 加锁, 操作完成 解锁, 当有其他线程操作的时候, 需要等待, 直到其他线程解锁, 方能继续操作.

var lock *sync.Mutex  
lock = new(sync.Mutex)  

lock.Lock()       

... ...  // 处理操作的逻辑

lock.Unlock() 

如果在解锁之前再次进行加锁,会进入死锁状态

如果是文件锁, 会分为读锁 RLock(), 写锁 WLock() 以及 读写锁 RWLock()

var lock *sync.RWMutex  
lock = new(sync.RWMutex)  
lock.RLock() 

... ...  // 处理文件操作的逻辑
 
lock.RUnlock()
上一篇下一篇

猜你喜欢

热点阅读