登录
首页 >  Golang >  Go问答

golfing中select的case选择

来源:SegmentFault

时间:2023-01-09 17:51:51 286浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《golfing中select的case选择》,聊聊并发、go,希望可以帮助到正在努力赚钱的你。

问题内容

关于select中的选择有一点不是特别明白,希望大家指点一下

package main

import (
    "time"
    "fmt"
)

func main() {
    tick := time.Tick(1 * time.Millisecond)

    ch := make(chan int)

    go func() {
        for i := 0; i 

上面的代码输出结果是没有receive a tick这一句,我想知道是因为在程序完成的过程中都tick都没有接受到一个信号吗?那这个程序也太快了吧?还是因为case选择时没有选这个分支呢?书上说多个case满足时会随机选择,我想请教下这个随机是真随机吗?还是有什么其他因素影响?谢谢大家

正确答案

和随机什么的没有关系。

time.Tick(1 * time.Millisecond)
1ms
才发送一次消息,而

go func() {
    for i := 0; i 

这个函数才循环30次,30次时间不到

1ms
,程序就结束了。

理论要掌握,实操不能落!以上关于《golfing中select的case选择》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表