最近在练习并发编程。加上最近也在用Golang写代码,所以记录一下练习的题目。
第一道题目是用10个协程打印100条信息,创建10个协程。每个协程都会有自己的编号。每个协程都会被打印10次。
package mainimport ("fmt""strconv"
)func main() {ch := make(chan string, 10)for i := 0; i < 10; i++ {go func(i int) {for j := 0; j < 10; j++ {ch <- "Goroutine : " + strconv.Itoa(i)}}(i)}for k := 1; k <= 100; k++ {i := <-chfmt.Println(k, i)}
}
本题的关键是:
创建goroutines:通过for i := 0; i < 10; i++
循环,创建了10个goroutines。每次循环迭代都会启动一个新的goroutine。
输出: