在并发编程中,GMutex
(全局互斥锁)是一种同步机制,用于保护共享资源免受多个线程同时访问的影响。GMutex
确保在任何给定时间只有一个线程可以持有锁并访问受保护的资源。
package main
import (
"fmt"
"sync"
"time"
)
var (
mutex sync.Mutex
data int
)
func main() {
wg := sync.WaitGroup{}
for i := 0; i < 10; i++ {
wg.Add(1)
go func(id int) {
defer wg.Done()
mutex.Lock()
defer mutex.Unlock()
// 模拟对共享资源的访问
time.Sleep(time.Millisecond * 100)
data++
fmt.Printf("Thread %d: Data = %d\n", id, data)
}(i)
}
wg.Wait()
}
请注意,上述示例代码仅用于演示目的,并未包含所有可能的错误处理和优化。在实际应用中,应根据具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云