golang select典型用法_go select案例_天已青色等烟雨来的博客-程序员秘密

技术标签: Golang  Golang学习笔记  

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的数据会被丢弃

引用

https://blog.csdn.net/x356982611/article/details/80506140

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/x356982611/article/details/80506140

智能推荐

机器学习系列手记(八):采样之均匀分布随机数_均匀分布采样_岳小刀的博客-程序员秘密

采样均匀分布随机数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;均匀分布是指在整个样本空间中的每一个样本点对应的概率(密度)都是相等的。根据样本空间是否连续,又分为离散均匀分布和连续均匀分布。均匀帆布可以算作是最简单的概率分布。从均匀分布中进行采样,即生成均匀分布随机数,几乎是所以采样算法都需要用到的基本操作。&nbsp;&nbsp;&nbsp;&nbsp;&nbs...

webpack报错:DeprecationWarning:Unhandled promise rejections are deprecated_[dep0018] deprecationwarning: unhandled promise re_劳动最光荣~的博客-程序员秘密

在webpack打包时出错:DeprecationWarning(node:3408) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error by rejecting a promise which was not handled with .catch(). To terminate the nodeprocess on unhandled promise rejection, use the CLI fla

Axure8.0基础教程(51-56)_杨四郎2018的博客-程序员秘密

Axure8.0基础教程(51-56)新手必须掌握的基础操作本文目录基础51. 生成部分原型页面基础52. 为原型添加标志基础53. 发布原型到AxShare基础54. 重新生成当前页面基础55. 移动设备设置基础56. Web字体设置正文基础51. 生成部分原型页面发布原型时,如果不需要将所有

链接时鼠标手状 a href=_web share的博客-程序员秘密

 样式 style="cursor:hand;"样式  style="cursor:point;"

解决android自定义标题栏充满的问题_前端也精彩的博客-程序员秘密

以下文章是转载的,大哥着实的让我着急了一把。。。。一个接着一个的activity,写啊写,调啊调,后来,终于发觉,activity的标题栏好难看,好单调啊。咱们为了吸引用户的眼球,得搞点个性化的东西。        自定义标题栏的方法,网上一搜一大堆,我也稍微提一下,oncreate中加上如下代码就行:Java代码  reques

上海2020计算机考研分数线,2020计算机考研重点关注五大标线_砸噶锈拉的博客-程序员秘密

2020年计算机考研专业课复习已经开始,新东方在线在此整理了2020计算机考研重点关注五大标线,希望能帮助大家!1、34所自划线最早公布的是34所自划线院校的自划线,一般在3月上旬左右发布。自主划线是教育部审批的部分招生单位可以根据本单位招生情况自主决定考研复试分数线,而不必参照考研国家复试分数线。国家出台这个政策的目的是给予这些大学在招生的时候有更多的优势,能够让学校在选择人才的时候有更大的自主...

随便推点

python的retry重试机制_wait_fixed_嘿,兄弟,好久不见的博客-程序员秘密

在读取数据库等场景中有时候会遇到连接失败等情况,如果不加处理就会导致程序直接报错停止运行,为了避免程序停止运行,我们可以使用python的retry包来帮助我们很好的实现重试机制,也就是当程序报错时可以重复执行代码,具体代码如下from retrying import [email protected](stop_max_attempt_number=5, wait_fixed=20)def read_data(): pass其中stop_max_attempt_number是指重复运行的次数;wait

(需求实战_终章) SpringBoot2.x 整合RabbitMQ_gblfy的博客-程序员秘密

文章目录1. maven依赖2. MainConfig3. application.properties4. 发送字符串 生产者5. 发送对象 生产者6. 接收字符串客户端7. 接收对象客户端8.confirem 确认机制9. return确认机制10. MQ消息发送工具类封装11. 分布式id12. 时间工具类13. 对象1. maven依赖 &lt;dependency&gt...

Windows下CMD中文乱码问题解决方法,设置代码页65001后仍然乱码_weixin_34268610的博客-程序员秘密

原文地址:http://blog.csdn.net/u011250882/article/details/48136883在中文Windows系统中,如果一个文本文件是UTF-8编码的,那么在CMD.exe命令行窗口(所谓的DOS窗口)中不能正确显示文件中的内容。在默认情况下,命令行窗口中使用的代码页是中文或者美国的,即编码是中文字符集或者西文字符...

mac下怎么清空缓存(缓存并硬性重新加载)_清空缓存并硬性重新加载_鹿鸣悠悠的博客-程序员秘密

1、清空缓存并硬性重新加载具体操作步骤:开启,开发者模式console,右键点刷新开启开发者模式—console2、无痕浏览模式下查看3、设置下 ,清楚浏览数据

推荐文章

热门文章

相关标签