go快速入门并发-channel

网友投稿 867 2022-10-20

go快速入门并发-channel

go快速入门并发-channel

概述

用简单的示例解决go并发与普通单线程的区别: 1000个请求进来: go的并发解决速度 go的单线程解决速度 两者比较即可了解go并发的魅力

channel的简单使用

定义通道

var c = make(chan int)

定义通道的接收方

func worker(i chan int) { fmt.Println(<-i)}

go worker(c)

通道的使用: 接收方 ⬅ 发送值

c <- 1

注意向通道发值的时候必须先定义通道的接收方

并发比较

用循环模拟1000请求

普通请求的处理

for i := 0 ; i < 1000 ; i++ { print(i)}//该方法可表示处理单个请求的处理时间func print(i int) { fmt.Println(i) time.Sleep(time.Microsecond)}

花费时间:15s

2.channel 请求的处理

//定义通道 var c = make(chan int) for i := 0 ; i < 1000 ; i++ { //先建立起通道接收方才能向通道传值 go worker(c) c <- i } //该方法可表示处理单个请求的处理时间 func worker(i chan int) { fmt.Println(<-i) time.Sleep(time.Microsecond) }

花费时间:68ms

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:J-Focus- JS动画应用框架
下一篇:Sidekar- 数据库持久层框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~