2019-03-08 go gorountine

在函数或者方法前面加上关键字go,即创建一个并发运行的新goroutine。


输出结果是01

go func()会在函数结束前才调用,

如果主函数返回时。当这种情况发生时,所有goroutines会终止,程序退出



输出结果是0120341(结果不唯一)

因为有延时runtime.Gosched()所以go的匿名函数就有可能执行(看延迟多久执行主函数),主函数一结束,就停止所有gorountines


输出结果是什么都没有

因为主函数一结束,就停止所有gorountines


当启动多个goroutine时,如果其中一个goroutine异常了,并且我们并没有对进行异常处理,那么整个程序都会终止,所以我们在编写程序时候最好每个goroutine所运行的函数都做异常处理,异常处理采用recover


并发:2对人去1个咖啡厅。 并行:2对人去2个咖啡厅





最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。