go语言从例子开始之Example21.协程
2019-10-28 10:21 _天枢 阅读(372) 评论(0) 编辑 收藏 举报Go 协程 在执行上来说是轻量级的线程。
golang使用协程用go关键字。后边正常调用函数。
Example:
package main import "fmt" func ak(str string){ for i:=0; i<3; i++{ fmt.Println(str, ":", i) } } //协程main中要注意,协程还没执行完main就退出了。 //换句话说就是main没有等待所有goroutine结束即退出。 func main(){ ak("direct") go ak("goroutine") go ak("sk") //go异步运行,这里用Scanln等待,需要退出时,要工按键退出。 var input string fmt.Scanln(&input) fmt.Println("done") }
Result:
$ go run example.go direct : 0 direct : 1 direct : 2 goroutine : 0 sk : 0 sk : 1 sk : 2 goroutine : 1 goroutine : 2
从结果可以看出,direct是阻塞输出。goroutine和sk是异步交替输出。
作 者:
天枢
出 处:
http://www.cnblogs.com/yhleng/
关于作者:专注于软件自动化测试领域。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者
直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角
【
推荐】
一下。您的鼓励是作者坚持原创和持续写作的最大动力!