// 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)
}
}
go高并发
原创wx62cbd84cdb743 ©著作权
©著作权归作者所有:来自51CTO博客作者wx62cbd84cdb743的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
go高并发调用python go实现高并发
一、并发的意义 并发的意义就是让 一个程序同时做多件事情,其目的只是为了能让程序同时做另一件事情而已,而不是为了让程序运行的更快(如果是多核处理器,而且任务可以分成相互独立的部分,那么并发确实可以让事情解决的更快)。 golang从语言级别上对并发提供了支持,而且在启动并发的方式上直接添加了语
go高并发调用python golang goroutine channel 高并发