MST

星途 面试题库

面试题:Go并发编程中互斥锁保护共享数据的基本使用

在Go并发编程中,假设你有一个全局变量`count`,有多个协程会对其进行加1操作。请编写代码使用互斥锁来保护`count`,确保数据的一致性。
47.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
    "sync"
)

var (
    count int
    mu    sync.Mutex
)

func increment(wg *sync.WaitGroup) {
    defer wg.Done()
    mu.Lock()
    count++
    mu.Unlock()
}

func main() {
    var wg sync.WaitGroup
    numRoutines := 1000
    for i := 0; i < numRoutines; i++ {
        wg.Add(1)
        go increment(&wg)
    }
    wg.Wait()
    fmt.Println("Final count:", count)
}