[golang] defer在mutex中用法

  • defer可以在mutex lock之后,unlock
type MetaDb struct {
    consul     *gokit.Consul
    identifier CloudIdentifier
    mutex      *sync.RWMutex
    set        *DbSet
}

func (m *MetaDb) Region() Region {
    m.mutex.RLock()
    defer m.mutex.RUnlock()
    return m.set.Region
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 参考cplusplus参考cppreference 1.mutex 用于保护临界区(critical sectio...
    王侦阅读 9,759评论 0 0
  • 锁是一种同步机制,用于多线程环境中对资源访问的限制iOS中常见锁的性能对比图(摘自:ibireme): iOS锁的...
    LiLS阅读 5,415评论 0 6
  • 多线程系列文章源码头文件内容: #include #include #include 作为程序员,就是要减少重复劳...
    batbattle阅读 3,576评论 0 2
  • 引用自多线程编程指南应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有...
    Mitchell阅读 6,067评论 1 7
  • 多线程系列文章源码头文件内容: #include #include #include 作为程序员,就是要减少重复劳...
    batbattle阅读 4,567评论 0 1