packagemain import( "fmt" "time" ) funcmain(){ test_chan1() //test_chan2() } functest_chan1(){ x:=make([]chanint,10) fori:=0;i<10;i++{ x[i]=make(chanint,1) gofunc(xxchanint,iiint){ //do_something() xx<-ii }(x[i],i) } forj:=0;j<10;j++{ fmt.Printf("%v-",<-x[j]) } } functest_chan2(){ x:=make(chanint,10) fori:=0;i<10;i++{ gofunc(xxchanint,iiint){ //do_something() x<-ii }(x,<-x) } } //明显第二种阻塞方式会好一些,因为第一种阻塞方式有阻塞顺序的限制,第二种是没有顺序执行限制的
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。