当前位置: 首页 > wzjs >正文

建站平台加盟建设企业网站企业网上银行登录官网下载

建站平台加盟,建设企业网站企业网上银行登录官网下载,网页版传奇复古,厦门网站建设、文章目录 select中case的使用非阻塞select有4个goroutine,按编号1、2、3、4循环打印使用三个协程,每秒钟打印cat dog fish实现两个goroutine轮流输出A 1 B 2 C 3..Z 26用N个goroutine去按顺序打印数字有一个数组,用两个协程,一个打…

文章目录

  • select中case的使用
  • 非阻塞select
  • 有4个goroutine,按编号1、2、3、4循环打印
  • 使用三个协程,每秒钟打印cat dog fish
  • 实现两个goroutine轮流输出A 1 B 2 C 3..Z 26
  • 用N个goroutine去按顺序打印数字
  • 有一个数组,用两个协程,一个打印所有偶数的和,一个打印所有奇数的和,要用for channel机制

select中case的使用

请问以下程序的输出结果?

func case1() {c1 := make(chan int)c2 := make(chan int)close(c1)close(c2)select {case <-c1:fmt.Println("c1")case c2 <- 1:fmt.Println("c2")default:fmt.Println("default")}
}

非阻塞select

以下程序输出结果?

func case2() {c := make(chan int, 1)done := falsefor !done {select {case <-c:print(1)c = nilcase c <- 1:print(2)default:print(3)done = true}}
}

有4个goroutine,按编号1、2、3、4循环打印

func case3() {ch := make([]chan int, 4)for i := range ch {ch[i] = make(chan int)go func(i int) {for {v := <-ch[i]fmt.Println(v + 1)time.Sleep(time.Second)ch[(i+1)%4] <- (v + 1) % 4}}(i)}ch[0] <- 0select {}
}

使用三个协程,每秒钟打印cat dog fish

func case4() {chCat := make(chan struct{})chDog := make(chan struct{})chFish := make(chan struct{})go func() {for {<-chCatfmt.Println("cat")time.Sleep(time.Second)chDog <- struct{}{}}}()go func() {for {<-chDogfmt.Println("dog")time.Sleep(time.Second)chFish <- struct{}{}}}()go func() {for {<-chFishfmt.Println("fish")time.Sleep(time.Second)chCat <- struct{}{}}}()chCat <- struct{}{}select {}
}

实现两个goroutine轮流输出A 1 B 2 C 3…Z 26

func case5() {byteCh := make(chan struct{}, 1)intCh := make(chan struct{}, 1)byteCh <- struct{}{}go func() {for {for i := 'A' - 0; i <= 'Z'-0; i++ {<-byteChfmt.Println(string(i))intCh <- struct{}{}}}//return}()go func() {for {for i := 1; i <= 26; i++ {<-intChfmt.Println(i)byteCh <- struct{}{}}}//return}()time.Sleep(time.Second)
}

用N个goroutine去按顺序打印数字

func case6() {const n = 5ch := make([]chan int, n)for i := 0; i < n; i++ {ch[i] = make(chan int, 1)}for i := 0; i < n; i++ {go printNum(i, ch[i])}count := 0for i := 0; i < 100; i++ {for j := 0; j < n; j++ {ch[j] <- countcount++time.Sleep(time.Second * 1)}}
}func printNum(gid int, ch chan int) {for {fmt.Printf("g:%d,num:%d\n", gid, <-ch)}
}

有一个数组,用两个协程,一个打印所有偶数的和,一个打印所有奇数的和,要用for channel机制

func case7() {nums := [5]int{1, 2, 32, 41, 5}oneCh := make(chan int, 1)twoCh := make(chan int, 1)go printOld(oneCh, nums[:])go printNew(twoCh, nums[:])fmt.Println(<-oneCh)fmt.Println(<-twoCh)
}func printOld(ch chan int, arr []int) {sum := 0for _, v := range arr {if v%2 == 0 {sum += v}}ch <- sum
}func printNew(ch chan int, arr []int) {sum := 0for _, v := range arr {if v%2 != 0 {sum += v}}ch <- sum
}
http://www.dtcms.com/wzjs/569155.html

相关文章:

  • 网站开发的过程防控措施持续优化
  • 商丘做网站建设国外网站建设软件有哪些
  • 成都网站优化平台wordpress悬浮
  • 建设银行官方网站首页企业网络科技公司起名字大全免费
  • 长沙高端网站建设服务在wordpress中图标
  • 运营网站赚钱企业网站建设发展平台
  • 网站想举报怎么做朗域装饰公司怎么样
  • 加强学校就业信息网站建设和管理线上注册公司入口
  • 北仑静态网站建设网站缓存优化怎么做
  • 旅游网站建设的组织性购物型网站怎么快速被百度收录
  • 电子商务网站开发规划腾讯云建立wordpress
  • 影视类网站建设莱芜都市网最新招聘信息
  • 汕头建站程序深圳龙岗网站建设公司
  • 形容网站做的好处北京互联网公司建网站
  • 商务咨询网站源码app网站建设宣传方案
  • 网站活动策划方案辽宁网站开发
  • 广州网站外包建个购物网站要多少钱
  • 无锡华诚建设监理有限公司网站wordpress 主页幻灯片
  • 坡头手机网站建设科技网站 网站建设
  • 小白如何建设网站jsp做网站前端实例
  • 瑞安建设公司网站wap网站开发视频教程
  • 怎么通过做网站来赚钱wordpress附件存放位置
  • 营销网站建设免费网站打不开了什么原因
  • 什么是建设网站的主题苏州专业网站设计制作公司
  • 平邑县建设局网站电子商务和网络营销哪个好
  • 网站怎么做才不会被封关于网站建设方案的案例
  • 上虞中国建设银行官网站阿泰勒北京网站建设
  • 服装定制网站模板公司起名字大全免费2021
  • jquery 手机网站开发网站开发项目交接
  • 网络创作网站哪家公司建造了迪士尼乐园