作者: 殷临风 | 来源:发表于2016-07-08 21:48 被阅读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()

    相关文章

      网友评论

          本文标题:

          本文链接:https://www.haomeiwen.com/subject/zlsrjttx.html