首页后端开发其他后端知识Golang的select最基本用法及应用是什么

Golang的select最基本用法及应用是什么

时间2024-03-26 02:26:03发布访客分类其他后端知识浏览836
导读:今天这篇给大家分享的知识是“Golang的select最基本用法及应用是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Golang的select最基本用法及应用是什么”文章能帮助大家解决问题。...
今天这篇给大家分享的知识是“Golang的select最基本用法及应用是什么”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Golang的select最基本用法及应用是什么”文章能帮助大家解决问题。


code

package main

import (
    "fmt"
    "time"
)

func chanTest(ch chan int) {


    for {
 //select外层需要循环        select {
        case value, ok := -ch:
            fmt.Println(value, ok, time.Now())            if ok == false {

                fmt.Println("chan已经关闭", time.Now()) //select要自己判断退出,如果是for..range 形式,在读取完了关闭的chanel后,退出循环
                return
            }
        default:
            fmt.Println("chan 空了", time.Now())            time.Sleep(time.Second * 5) //分支的处理会阻塞整个select
        }

    }

}


func main() {


    var ch = make(chan int, 100)    go chanTest(ch)

    ch - 1
    ch - 2
    time.Sleep(time.Second * 2)
    ch - 3
    ch - 4

    time.Sleep(time.Second)    close(ch)    for {
        time.Sleep(time.Second)
    }

}
    

需要注意的是,select的 defalut会丢弃数据,chan已满的情况,入chan的数据会被丢弃


以上就是关于“Golang的select最基本用法及应用是什么”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Golang的select最基本用法及应用是什么
本文地址: https://pptw.com/jishu/653198.html
Golang中channel的实现怎样做,过程是什么 对Node中的事件循环的理解及相关知识有哪些

游客 回复需填写必要信息