首页 > 其他分享 >个人学习笔记不要看

个人学习笔记不要看

时间:2022-11-22 20:47:55浏览次数:37  
标签:ch 个人 fmt goroutine 笔记 学习 并发 func main

package main

import (
	"fmt"
)

func main() {
	//构建一个通道
	ch1 := make(chan int)
	//开启一个匿名并发函数
	go func() {
		fmt.Println("start goroutine")
		//通过通道通知main的goroutine
		//这句代码会一直阻塞到main的goroutine接收为止
		ch1 <- 0
		fmt.Println("exit goroutine")
	}()
	//time.Sleep(3 * time.Second)
	fmt.Println("wait goroutine")

	//等待匿名goroutine
	<- ch1
	fmt.Println("all done")
}

并发执行,main的goroutine在发布启动协成任务后就只继续执行自己的,启动一个新的goroutine需要时间,所以先打印wait goroutine,如果main的goroutine睡眠一下就会打印start goroutine

package main

import (
	"fmt"
	"time"
)

/*
通道ch是可以进行遍历的
遍历的结果就是接收到的数据
for data := range ch{
}
通过for遍历获得的变量只有一个就是data
 */
func main() {
	//构建一个通道
	ch := make(chan int)
	//开启一个并发匿名函数
	go func() {
		fmt.Println("start goroutine")
		//从3循环到0
		for i := 3; i >= 0 ; i-- {
			//发送3到0之间的数值
			ch <- i
			//每次发送完之后等待
			time.Sleep(time.Second)
		}
		fmt.Println("exit goroutine")
	}()

	//循环接收
	for data := range ch {
		fmt.Println(data)
		//遇到数据0时,退出接收循环,如果遇到0不退出,此时通道中已经没有值的话就会触发宕机错误
		if data == 0 {
			break
		}
	}
}

并发执行,但是main的goroutine结束后,子goroutine都会结束
所以不会打印exit goroutine

标签:ch,个人,fmt,goroutine,笔记,学习,并发,func,main
From: https://www.cnblogs.com/jianjiana/p/16916380.html

相关文章

  • [Polkadot] 波卡链学习笔记
    前言 早已听闻波卡链大名,但从未真正静下心来了解。最近难得有些属于自己的时间了,故将学习到的记录下来。介绍 相信大家对波卡链都有些许了解,在这我就长话短说,简单介......
  • orcale笔记05-函数
    1.聚合函数sum()求和count()计数max()最大值min()最小值avg()平均值2.数字相关   abs(num)绝对值round(num)四舍五入t......
  • PyTorch复现GoogleNet学习笔记
    PyTorch复现GoogleNet学习笔记一篇简单的学习笔记,实现五类花分类,这里只介绍复现的一些细节如果想了解更多有关网络的细节,请去看论文《GoingDeeperwithConvolutions》......
  • unittest学习笔记
    原文:https://www.cnblogs.com/miki-peng/p/12501341.html为什么要学习unittest按照测试阶段来划分,可以将测试分为单元测试、集成测试、系统测试和验收测试。单元测试是指......
  • 盘点个人信息保护方面的那些认证
    11月18日,多家媒体平台转发了《关于关于实施个人信息保护认证的公告》,“公告”由国家市场监督监管总局、国家互联网信息办公室联合发布,这也代表着在个人信息保护领域政策的加......
  • 2211-22学习记录之python百分数,time模块
    百分数print('{:.0%}'.format(84/100))输出为84%以上百分数输出是使用到了字符串格式化函数format(),在其中将分数42/50作为值给传递了进去。如果将分子分母同时乘以2......
  • 中科大嵌入式linux课程笔记01
    lesson1嵌入式系统主要概念课程简介课程目录参考书嵌入式系统结构和开发流程概念、特点、组成、硬件、软件、开发​ 嵌入式系统首先是一个计算机系统,后者有的技......
  • 集成学习
    https://blog.csdn.net/weixin_43776305/article/details/116895875 多个模型集成后的模型叫做集成评估器,集成评估器中的每一个模型叫做基评估器,通常来说有三类集成算法......
  • MyBatis - 基础学习9 - 动态sql(sql片段,foreach)
    一.sql片段为什么要使用sql片段:我么在编写一些大规模的sql语句时,总会面临所写的sql语句在几个增删改语句中反复出现,它们都做着相同的事,我们却要反复的编写(虽然可以复制粘......
  • 网络流学习笔记
    前言:本人已做完网络流24题。0.基础:Dinic最大流/最小割:https://www.luogu.com.cn/blog/creationhy/dinicDinic费用流:https://www.luogu.com.cn/blog/creationhy/dinic-f......