美文网首页
Go 在channel写入时直接返回

Go 在channel写入时直接返回

作者: 霡霂976447044 | 来源:发表于2020-06-27 15:11 被阅读0次

select 不仅可以用于检测channel的数据写状态,还能监听读状态,利用这个特性,我们可以防止在没有go协程读channel时一直阻塞

package main

import (
    "fmt"
    "time"
)

func ggg(aa chan int) {
    fmt.Println("aa", <-aa)

}

func main() {
    a := make(chan int)
    go ggg(a)
    // time.Sleep(time.Second)
    // a <- 10
    select {
    case a <- 10:
        {
            fmt.Println("ok")
        }
    default:
        {
            fmt.Println("default")
        }
    }
    time.Sleep(time.Second)
    fmt.Println("sdsds")
}

注释time.Sleep代码可以看到效果

相关文章

  • Go 在channel写入时直接返回

    select 不仅可以用于检测channel的数据写状态,还能监听读状态,利用这个特性,我们可以防止在没有go协程...

  • Go Channel 操作状态

    【编者的话】Go Channel 操作状态以及返回结果的总结 References: Concurrency in...

  • 文章收藏

    channel Go Channel 详解

  • Golang Channel底层实现

    Go Channel 底层实现 目录 channel 是什么 channel 的创建 channel 的发送 ch...

  • 26.Go语言·管道Channel

    main.go model/Channel.go

  • Go语言——channel详解

    Go语言——channel详解 channel和goroutine是go语言最具特色是结构,有必要仔细研究。 源码...

  • 无缓冲channel

    无缓冲channel可用于两个不同go程间同步数据,即在一个go程中阻塞channel,在另外一个go程中释放ch...

  • golang goroutine 无法抛错就用 errgroup

    一般在golang 中想要并发运行业务时会直接开goroutine,关键字go ,但是直接go的话函数是无法对返回...

  • channel in Go's runtime

    http://skoo.me/go/2013/09/20/go-runtime-channel/

  • Go channel

    单纯地将函数并发执行是没有意义的,函数与函数之间需要交换数据才能体现并发执行函数的作用。虽然可使用共享内存进行数据...

网友评论

      本文标题:Go 在channel写入时直接返回

      本文链接:https://www.haomeiwen.com/subject/kitvfktx.html