package main
import (
"fmt"
"sync"
)
var n int = 0
var ch chan int = make(chan int, 1000)
func IntIncrement(plock *sync.Mutex, i int) {
plock.Lock()
n++
plock.Unlock()
ch <- i
}
func main() {
lock1 := &sync.Mutex{}
i := 0
for i = 0; i < 1000; i++ {
go IntIncrement(lock1, i)
}
for i = 0; i < 1000; i++ {
<-ch
}
fmt.Println(n)
}