0104-Go-非阻塞通道

环境

  • Time 2022-08-24
  • Go 1.19

前言

说明

参考:https://gobyexample.com/non-blocking-channel-operations

目标

使用 Go 语言的非阻塞通道。

示例

package main

import "fmt"

func main() {
    messages := make(chan string)
    signals := make(chan bool)

    select {
    case msg := <-messages:
        fmt.Println("received message", msg)
    default:
        fmt.Println("no message received")
    }

    msg := "hi"
    select {
    case messages <- msg:
        fmt.Println("sent message", msg)
    default:
        fmt.Println("no message sent")
    }

    select {
    case msg := <-messages:
        fmt.Println("received message", msg)
    case sig := <-signals:
        fmt.Println("received signal", sig)
    default:
        fmt.Println("no activity")
    }
}

总结

使用 Go 语言的非阻塞通道。

附录

posted @ 2022-11-27 19:18  jiangbo4444  阅读(24)  评论(0)    收藏  举报