可以!
读取多次可以依次拿到之前写入的值,直到最后读完,继续读则得到对应channel类型的0值
因涉及一些执行语句,禁止写入,请联系客服获取
0x14000134000 从已关闭的channel中读取到信息为: 123 从已关闭的channel中读取到信息为: 456 从已关闭的channel中读取到信息为: 0
golang之channel入门
channel需要注意的点:
即 Go中父协程与子协程的生命周期问题
结论:
1. 当父协程是main协程时,父协程退出,父协程下的所有子协程也会跟着退出; (当main协程结束时,子协程也是会被终止掉的)
因涉及一些执行语句,禁止写入,请联系客服获取
输出:
123 456
2. 当父协程不是main协程时,父协程退出,父协程下的所有子协程并不会跟着退出(子协程直到自己的所有逻辑执行完或者是main协程结束才结束)
因涉及一些执行语句,禁止写入,请联系客服获取
123 456 f1()执行结束 但f1()创建的协程还在像子弹一样继续飞! panic: 子协程中发生异常 goroutine 33 [running]: main.f1.func1() /Users/fliter/go/src/shuang/0000/panic.go:25 +0x7c created by main.f1 /Users/fliter/go/src/shuang/0000/panic.go:22 +0x24 exit status 2
go中父协程与子协程的生命周期(子协程能否使用主协程变量)
不能
因涉及一些执行语句,禁止写入,请联系客服获取
123 456 panic: 子协程中发生异常 goroutine 4 [running]: main.main.func1() /Users/fliter/go/src/shuang/0000/panic.go:14 +0x2c created by main.main /Users/fliter/go/src/shuang/0000/panic.go:12 +0x64 exit status 2
主协程里的recover,能捕获子协程的panic吗?
不能~
对于goroutine中的panic,协程外面的recover是无法恢复的;goroutine中的recover,同样无法恢复协程外的panic
Go异常处理机制panic和recover
不能~
像
会报fatal error:xxxxxxxx
recover能捕获所有错误吗?
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者