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/1.go

27 lines
530 B
Go
Raw Normal View History

package main
import (
"fmt"
"sync"
)
var value int
func increment(waitGroup *sync.WaitGroup, c chan bool) {
c <- true // блокируем критический раздел
value = value + 1
<-c // разблокировка критического раздела
waitGroup.Done()
}
func main() {
var waitGroup sync.WaitGroup
myChan := make(chan bool, 1)
for i := 0; i < 1000; i++ {
waitGroup.Add(1)
go increment(&waitGroup, myChan)
}
waitGroup.Wait()
fmt.Println("Value after 1k increment = ", value)
}