| 123456789101112131415161718192021222324252627 |
- package main
- import (
- "fmt"
- "sync"
- )
- func main() {
- var x int
- wg := new(sync.WaitGroup)
- mu := new(sync.Mutex)
- for i := 0; i < 1000; i++ {
- // Запускаем 1000 экземпляров горутины, увеличивающей счетчик на 1
- wg.Add(1)
- go func(wg *sync.WaitGroup) {
- defer wg.Done()
- mu.Lock()
- x++
- mu.Unlock()
- }(wg)
- }
- wg.Wait()
- fmt.Println(x)
- }
|