1
0
mirror of https://github.com/MADTeacher/go_basics.git synced 2025-11-23 21:34:47 +02:00
Files
go_basics/part_7/7.7/2.go

27 lines
572 B
Go

package main
import (
"fmt"
"sync"
)
var value int
func increment(waitGroup *sync.WaitGroup, mutex *sync.Mutex) {
mutex.Lock() // блокируем критический раздел
defer mutex.Unlock() // отложенная разблокировка
value = value + 1
waitGroup.Done()
}
func main() {
var waitGroup sync.WaitGroup
mutex := new(sync.Mutex) // либо var mutex sync.Mutex
for i := 0; i < 1000; i++ {
waitGroup.Add(1)
go increment(&waitGroup, mutex)
}
waitGroup.Wait()
fmt.Println("Value after 1k increment = ", value)
}