go高并发
  y5zqVixaDLkE 2023年11月02日 56 0
// testchannel
package main

import (

  "fmt"

  "math/rand"

  "time"

)

func CalculateValue(values chan int) {

  // 设置随机种子,避免随机函数生成相同的值

  rand.Seed(time.Now().UnixNano())

  value := rand.Intn(100)

  fmt.Println("计算随机值: {}", value)

  // 往通道发送值

  values <- value

}

func main() {

  //建立一个通道,go进入通道产生一个随机数,然后返回来

  //通道满了会阻塞,空了会阻塞,不发送不接收,也会阻塞

  fmt.Println("Golang Channel 教程")

  // 创建int类型通道,只能传入int类型值

  values := make(chan int, 2)

  defer close(values)

  for i := 1; i < 5; i++ {

    go CalculateValue(values)

    // time.Sleep(1)

    // 从通道接收值

    value := <-values

    fmt.Println(value)

  }

}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: 安装tengine 下一篇: rust热启动
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  y5zqVixaDLkE   2023年11月02日   57   0   0 golang高并发
y5zqVixaDLkE