计算机系统应用教程网站

网站首页 > 技术文章 正文

sema锁是什么?mutex源码中的结构有看过吗?

btikc 2024-10-12 10:46:21 技术文章 7 ℃ 0 评论
  1. 互斥锁(Mutex)的核心作用
  • 保证原子性。
  1. 互斥锁的使用原则
  • 适用于并发编程。
  • 尽量减少加锁区域的逻辑。
  1. 互斥锁的局限性
  • 仅限于单个进程内操作。
  1. 信号量(Semaphore)
  • 用于并发控制的机制。
  • 资源计数:信号量维护一个资源计数,表示当前可用的资源数量。
  • 获取操作(P操作):协程在获取资源时会检查信号量的资源计数,如果大于0,则获取资源并使计数减1;如果为0,则协程阻塞等待。
  • 释放操作(V操作):协程使用完资源后释放,信号量的计数加1,如果有协程在等待,其中一个会被唤醒并获取资源。

简而言之,文件内容讨论了Go语言中用于同步并发操作的两种机制:互斥锁和信号量,包括它们的作用、使用原则和局限性。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表