- 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)
- }
- }
- //明显第二种阻塞方式会好一些,因为第一种阻塞方式有阻塞顺序的限制,第二种是没有顺序执行限制的