package main
import (
"fmt"
"math/rand"
"time"
"sort"
)
func shuffled(len int) []int {
for i,_ := range arr {
arr[i]++
}
return arr
}
func main() {
arr := shuffled(1000)
out := make(chan int)
start
:= time.
Now().
UnixNano() for _,n := range arr {
go func
(i
int) { time.
Sleep(time.
Duration(i
) * time.
Millisecond); out
<- i
}(n
) }
res := make([]int, 0, len(arr))
for _ = range arr {
res = append(res, <-out)
}
fmt.
Println((time.
Now().
UnixNano() - start
) / int64(time.
Millisecond), sort.
IntsAreSorted(res
))}
cGFja2FnZSBtYWluCgppbXBvcnQgKAoJImZtdCIKCSJtYXRoL3JhbmQiCgkidGltZSIKCSJzb3J0IgopCgpmdW5jIHNodWZmbGVkKGxlbiBpbnQpIFtdaW50IHsKCXJhbmQuU2VlZCh0aW1lLk5vdygpLlVuaXhOYW5vKCkpCglhcnIgOj0gcmFuZC5QZXJtKGxlbikKCWZvciBpLF8gOj0gcmFuZ2UgYXJyIHsKCQlhcnJbaV0rKwoJfQoJcmV0dXJuIGFycgp9CgpmdW5jIG1haW4oKSB7CglhcnIgOj0gc2h1ZmZsZWQoMTAwMCkKCW91dCA6PSBtYWtlKGNoYW4gaW50KQoJc3RhcnQgOj0gdGltZS5Ob3coKS5Vbml4TmFubygpCglmb3IgXyxuIDo9IHJhbmdlIGFyciB7CgkJZ28gZnVuYyhpIGludCkgeyB0aW1lLlNsZWVwKHRpbWUuRHVyYXRpb24oaSkgKiB0aW1lLk1pbGxpc2Vjb25kKTsgb3V0IDwtIGkgfShuKQoJfQoJcmVzIDo9IG1ha2UoW11pbnQsIDAsIGxlbihhcnIpKQoJZm9yIF8gPSByYW5nZSBhcnIgewoJCXJlcyA9IGFwcGVuZChyZXMsIDwtb3V0KQoJfQoJZm10LlByaW50bG4oKHRpbWUuTm93KCkuVW5peE5hbm8oKSAtIHN0YXJ0KSAvIGludDY0KHRpbWUuTWlsbGlzZWNvbmQpLCBzb3J0LkludHNBcmVTb3J0ZWQocmVzKSkKfQo=