001 Golang-channel-practice

最近在练习并发编程。加上最近也在用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

 

 

相关推荐

  1. 006 Golang-channel-practice 并发打印字符串

    2024-01-10 09:18:01       57 阅读
  2. golang channel

    2024-01-10 09:18:01       39 阅读
  3. golang学习-channel管道

    2024-01-10 09:18:01       47 阅读
  4. Golang 并发 Channel的用法

    2024-01-10 09:18:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-10 09:18:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-10 09:18:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-10 09:18:01       87 阅读
  4. Python语言-面向对象

    2024-01-10 09:18:01       96 阅读

热门阅读

  1. php中的继承和接口

    2024-01-10 09:18:01       56 阅读
  2. Hive的时间处理函数from_unixtime和unix_timestamp

    2024-01-10 09:18:01       60 阅读
  3. 能源互联网:照亮我们绿色、智能的未来

    2024-01-10 09:18:01       64 阅读
  4. 【Leetcode】251.展开二维向量

    2024-01-10 09:18:01       50 阅读
  5. Unity两组Toggle一一对应关系

    2024-01-10 09:18:01       55 阅读
  6. Agisoft Metashape 地面点分类参数设置

    2024-01-10 09:18:01       62 阅读