加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Golang第三天

发布时间:2020-12-16 18:49:02 所属栏目:大数据 来源:网络整理
导读:不得不说一句,我开始写的部分笔记没有发表,只是保存起来,为什么现在看不到了呢 ------------------------------------ --------------------------------------- 不得不说的 channel 1、channel只能使用make 来创建 2、channel分为两种:一种是有buffer的

不得不说一句,我开始写的部分笔记没有发表,只是保存起来,为什么现在看不到了呢

---------------------------------------------------------------------------

不得不说的channel

1、channel只能使用make 来创建

2、channel分为两种:一种是有buffer的,另一种是没有buffer的。

备注:有缓冲的channel,先放后取

无缓冲的channel,先取后放

其实说的形象点就是:无缓冲相当于TCP,有缓冲相当于UDP

套用网上文章:

有缓冲

无缓冲的 就是一个送信人去你家门口送信 ,你不在家 他不走,你一定要接下信,他才会走。

无缓冲保证信能到你手上

有缓冲的 就是一个送信人去你家仍到你家的信箱 转身就走 ,除非你的信箱满了 他必须等信箱空下来。

有缓冲的 保证 信能进你家的邮箱


var a string 
var c = make(chan int,10) 
   
func f() { 
    a = "hello,world"
    c <- 0
} 
   
func main() { 
    go f() 
    <-c 
    print(a) 
  
}
无缓冲

var a string 
var c = make(chan int) 
   
func f() { 
    a = "hello,world"
    <-c 
} 
   
func main() { 
    go f() 
    c <- 0
    print(a) 
  
}

-----------------------

设置超时

select {

case v := <-c:

case <-time.After(3 * time.second)

fmt.printlin("超时");

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读