zoukankan      html  css  js  c++  java
  • channel vs mutex

    记录许总演讲PPT指出的实践:

    channel
    – 本质上是一个 MessageQueue
    – 非常正统的执行体间通讯设施
    • sync.Mutex/RWMutex/Cond/etc
    – 不要把 channel 当做万金油,该 Mutex 还是要

    • 误区
    – 用 channel 来做互斥 ( 正常应该让 Mutex 做 )
    • 比如多个 goroutine 访问一组共享变量

    • channel 的成本
    – 作为消息队列, channel 成本原高于 Mutex

    – 成本在哪?
    • channel 内部有 Mutex ,因为它本身属于共享变量
    • channel 内部可能有 Cond ,用来等待或唤醒满足条件的
    goroutine
    • 出让 cpu 并且让另一个 goroutine 获得执行机会,这个切
    换周期不低,远高于 Mutex 检查竞争状态的成本 ( 后者通常
    只是一个原子操作 )
  • 相关阅读:
    CSS的扩展less和sass
    html5小游戏基础知识
    htm5拖放和画布
    htm5
    并查集模板
    二叉树的建树
    kmp的书写
    贪心算法
    容器
    POJ2442 优先队列
  • 原文地址:https://www.cnblogs.com/zeeman/p/3968370.html
Copyright © 2011-2022 走看看