Golang 锁的相关知识

Golang锁分类:互斥锁(Mutex)、读写锁(RWMutex)。

互斥锁

        在编写代码中引入了对象互斥锁的概念,来保证共享数据操作的完整性。每个数据对象都对应于一个可称为" 互斥锁" 的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。

    lock := &sync.Mutex{}  //锁声明

    lock.Lock() //获取锁

    lock.Unlock()//释放锁

读写锁

        读写锁实际是一种特殊的自旋锁,它把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。

    lock := &sync.RWMutex{}//锁声明

    lock.RLock() /lock.Lock()//  读/写锁获取

    lock.RUnlock()/lock.Unlock() //释放读写锁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 在多线程开发中,常会遇到多个线程访问修改数据。为了防止数据不一致或数据污染,通常采用加锁机制来保证线程安全。...
    赵梦楠阅读 1,129评论 0 5
  • 引用自多线程编程指南应用程序里面多个线程的存在引发了多个执行线程安全访问资源的潜在问题。两个线程同时修改同一资源有...
    Mitchell阅读 2,093评论 1 7
  • 互斥量 用于线程同步,保证多线程访问共享数据的正确性 基本类型 std::mutex:独占的互斥量,不能递归使用 ...
    JasonLiThirty阅读 642评论 0 1
  • iOS中的锁 前言 写在前面: 临界区:指的是一块对公共资源进行访问的代码,并非一种机制或是算法。 自旋锁:是用于...
    ROBIN2015阅读 948评论 0 7
  • 六一儿童节 今天是五月份最后一天,2019年5月31日,一年已经过去一半,盘点这5个月的收获,真的在收入上没有任何...
    789c85197759阅读 70评论 0 1

友情链接更多精彩内容