爱摸鱼的Demon
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

爱摸鱼的Demon

我的地盘,欢迎光临。
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C#

  • Golang

    • Go

      • GO环境安装
      • Hello World GO版
      • GO变量、数据类型与方法
      • GO的基础语法
      • 并发安全与锁
      • channel(通道、管道)
      • 反射
      • 文件目录
      • Golang中的接口(Interface)
    • Gin

    • GORM

  • 后端技术
  • Golang
  • Go
DemonW-X
2025-09-29

并发安全与锁

1、互斥锁

互斥锁是传统并发编程中对共享资源进行访问控制的主要手段,由标准库sync中的Mutex结构体类型表示。

sync.Mutex类型只有两个公开的指针方法:Lock(锁定)和Unlock(解锁)。

2、读写互斥锁

互斥锁的本质是当一个goroutine访问的时候,其他的goroutine都不能访问。,这样在资源同步,避免竞争的同时也降低了并发性能。程序由原来的并行执行变成了串行执行。

读并不存在资源竞争问题,写才是资源竞争最核心的本质。真正的互斥应该是读取和修改、修改和修改之间。

读写锁可以让多个读操作并发,同时读取。但是对写操作是完全互斥的。当一个goroutine进行写操作的时候,其他goroutine既不能进行读操作也不能进行写操作。读写锁由标准库sync中的RWMutex结构体类型表示。

sync.RWMutex类型有两个方法:Lock(写锁定)和Unlock(写解锁)、RLock(读锁定)和RUnlock(读解锁)。

编辑 (opens new window)
GO的基础语法
channel(通道、管道)

← GO的基础语法 channel(通道、管道)→

最近更新
01
Gorm之事务
11-13
02
Gorm之关联进阶版
11-13
03
Gorm之根据外键关联表
11-13
更多文章>
Theme by Vdoing | Copyright © 2022-2025 爱摸鱼的Demon | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式