001 Golang-channel-practice

发布时间:2024年01月10日

最近在练习并发编程。加上最近也在用Golang写代码,所以记录一下练习的题目。

?

第一道题目是用10个协程打印100条信息,创建10个协程。每个协程都会有自己的编号。每个协程都会被打印10次。

?

package main

import (
	"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 := <-ch
		fmt.Println(k, i)
	}
}

本题的关键是:

创建goroutines:通过for i := 0; i < 10; i++循环,创建了10个goroutines。每次循环迭代都会启动一个新的goroutine。

?

?

输出:

a4dbb9a63a284ee78de8994c7e5ebafc.png

?

?

文章来源:https://blog.csdn.net/weixin_45848873/article/details/135490619
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。