美文网首页
golang使用锁

golang使用锁

作者: 耍帅oldboy | 来源:发表于2022-08-05 21:29 被阅读0次
package main

import (
    "fmt"
    "sync"
    "time"
)

var count = 0
var wg sync.WaitGroup
var mutex sync.Mutex

func calc() {
    mutex.Lock()
    count++
    fmt.Println("count=", count)
    time.Sleep(time.Millisecond * 10)
    mutex.Unlock()
    wg.Done()
}

func main() {
    for i := 0; i < 20; i++ {
        wg.Add(1)
        go calc()
    }
    wg.Wait()
}

执行结果

count= 1
count= 2
count= 3
count= 4
count= 5
count= 6
count= 7
count= 8
count= 9
count= 10
count= 11
count= 12
count= 13
count= 14
count= 15
count= 16
count= 17
count= 18
count= 19
count= 20

相关文章

  • golang使用锁

    执行结果

  • golang sync.WaitGroup使用示例

    golang中同步方式 golang中有2种方式同步程序 一种使用channel 另一种使用锁机制。 sync.W...

  • Golang 读写锁RWMutex 互斥锁Mutex 源码详解

    前言 Golang中有两种类型的锁,Mutex (互斥锁)和RWMutex(读写锁)对于这两种锁的使用这里就不多说...

  • 乐观锁和悲观锁

    悲观锁 有锁,每次只有一个人能访问某个数据,这和Golang中的互斥锁一样。 如果是在分布式下使用锁,可以使用如 ...

  • (九)golang sync map 源码分析

    golang中的map是不支持并发操作的,golang推荐用户直接用读写锁对map进行保护,也有第三方类库使用分段...

  • golang:使用channel实现互斥锁

    golang中使用channel实现互斥锁 通过将带有一个缓冲区的channel作为一个桶,桶中的数据作为锁,每次...

  • golang 基础(30) WaitGroup

    golang中有2种方式同步程序,一种使用channel,另一种使用锁机制。sync.WaitGroup只有3个方...

  • Golang 锁的相关知识

    Golang锁分类:互斥锁(Mutex)、读写锁(RWMutex)。 互斥锁 在编写代码中引入了对象互斥锁的概念,...

  • golang 锁

    手册中有点难懂,自己写个例子。 写完后发现没手册中的好理解, 输出 反正不管怎么执行,最后结果1不变, 但四次运算...

  • golang 中 sync.Mutex 和 sync.RWMut

    介绍 golang 中的 sync 包实现了两种锁: Mutex:互斥锁 RWMutex:读写锁,RWMutex ...

网友评论

      本文标题:golang使用锁

      本文链接:https://www.haomeiwen.com/subject/hexmwrtx.html