#青训营笔记创作活动#
2月4日 打卡day7
今日学习
Goroutine和Channel知识点
1. 只要 Goroutine函数执行结束,或者执行返回,意味着 Goroutine的退出。如果 Goroutine
的函数或方法有返回值,在 Goroutine 退出时会将其忽略。
2. channel可以用于实现 Goroutine间的通信,也可以用来实现 Goroutine间的同步。
3. 无缓冲的 channel的发送与接收操作是同步的,在执行发送操作之后,对应 Goroutine
将会阻塞,直到有另一个 Goroutine去执行接收操作,反之亦然。
4. 通常只发送 channel类型和只接收 channel类型,会被用作函数的参数类型或返回值
5. 在 channel关闭之后,将不能对 channel执行发送操作,否则会发生 panic,提示 channel已关闭。
6. 关闭 channel之后,依旧可以对 channel执行接收操作,如果存在缓冲区的情况下,将会读取缓冲区的数据,如果缓冲区为空,则获取到的值为 channel对应类型的零值。
2月4日 打卡day7
今日学习
Goroutine和Channel知识点
1. 只要 Goroutine函数执行结束,或者执行返回,意味着 Goroutine的退出。如果 Goroutine
的函数或方法有返回值,在 Goroutine 退出时会将其忽略。
2. channel可以用于实现 Goroutine间的通信,也可以用来实现 Goroutine间的同步。
3. 无缓冲的 channel的发送与接收操作是同步的,在执行发送操作之后,对应 Goroutine
将会阻塞,直到有另一个 Goroutine去执行接收操作,反之亦然。
4. 通常只发送 channel类型和只接收 channel类型,会被用作函数的参数类型或返回值
5. 在 channel关闭之后,将不能对 channel执行发送操作,否则会发生 panic,提示 channel已关闭。
6. 关闭 channel之后,依旧可以对 channel执行接收操作,如果存在缓冲区的情况下,将会读取缓冲区的数据,如果缓冲区为空,则获取到的值为 channel对应类型的零值。
展开
评论
点赞