//test函数就是计算n!,让将这个结果放入到myMap functest(n int) { res := 1 for i := 1; i <= n; i++ { res *= i } // 这里我们将res放入到myMap myMap[n] = res }
funcmain() { // 我们这里开启多个协程完成这个任务[200个] for i := 1; i <= 77; i++ { go test(i) } // 休眠10秒钟[又是一个问题] time.Sleep(time.Second * 10) // 这里我们输出结果,变量这个结果 for key, value := range myMap { fmt.Printf("map[%d]=%d\n", key, value) } }
//test函数就是计算n!,让将这个结果放入到myMap functest(n int) { res := 1 for i := 1; i <= n; i++ { res *= i } // 加锁 lock.Lock() // 这里我们将res放入到myMap myMap[n] = res // 解锁 lock.Unlock() }
funcmain() { // 我们这里开启多个协程完成这个任务[200个] for i := 1; i <= 30; i++ { go test(i) } // 休眠10秒钟[又是一个问题] time.Sleep(time.Second * 10) // 这里我们输出结果,变量这个结果 lock.Lock() for key, value := range myMap { fmt.Printf("map[%d]=%d\n", key, value) } lock.Unlock() }
举例: var intChan chanint// intChan用于存放int类型数据 var mapChan chanmap[int]string// mapChan用于存放map[int]string类型 var perChan chan Person // var perChan chan Person //