golang 阻塞模式选择

前端之家收集整理的这篇文章主要介绍了golang 阻塞模式选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. packagemain
  2.  
  3. import(
  4. "fmt"
  5. "time"
  6. )
  7.  
  8. funcmain(){
  9. test_chan1()
  10. //test_chan2()
  11.  
  12. }
  13.  
  14. functest_chan1(){
  15. x:=make([]chanint,10)
  16. fori:=0;i<10;i++{
  17. x[i]=make(chanint,1)
  18. gofunc(xxchanint,iiint){
  19. //do_something()
  20. xx<-ii
  21. }(x[i],i)
  22. }
  23.  
  24. forj:=0;j<10;j++{
  25. fmt.Printf("%v-",<-x[j])
  26. }
  27. }
  28.  
  29. functest_chan2(){
  30. x:=make(chanint,10)
  31. fori:=0;i<10;i++{
  32. gofunc(xxchanint,iiint){
  33. //do_something()
  34. x<-ii
  35. }(x,<-x)
  36. }
  37. }
  38.  
  39. //明显第二种阻塞方式会好一些,因为第一种阻塞方式有阻塞顺序的限制,第二种是没有顺序执行限制的

猜你在找的Go相关文章