Golang|select

文章目录

    • 多路监听
    • 超时控制

多路监听

在这里插入图片描述

  • 如果selcet外面没有for循环,则只会监听一次,要实现一直监听的话要加for循环
  • 但是如果要设置退出条件的话,break语句只会退出这个select而不会退出for循环

在这里插入图片描述

  • select也可以有default,用于不用等channel的阻塞的情况,也就是如果有数据我就读如果没有数据我也不想要被阻塞的情况,速度很快

在这里插入图片描述
在这里插入图片描述

超时控制

  • 有时候我们的函数可能会执行很长一段时间,我们希望能有一个最长执行时间的控制,超过这个时间后我都不想再继续等了

  • 第一种做法:时间到了之后往channel放入元素

在这里插入图片描述
在这里插入图片描述

  • 第二种方法:time.After,会返回一个只读的channel,当等设定好的一段时间后,会往返回的channel放入元素

在这里插入图片描述

  • 第三种方案:借助context,context.WithCancel,ctx里面有done方法,会返回只读channel,没有元素,但是我们显式执行cancel之后会关闭done返回的channel,也不会使select阻塞

在这里插入图片描述

  • 第四种方法:context.WithTimeout,当超时,会直接关闭ctx的管道

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/76894.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人机的群体协同与集群控制技术要点!

一、技术要点 通信技术 高效可靠的通信链路:无人机集群需要稳定、低延迟的通信网络,以实现实时数据传输和指令交互。通信方式包括无线自组织网络(Ad Hoc)、蜂窝网络、卫星通信等,需根据任务场景选择合适的通信技术。…

新手小白如何给个人电脑安装Deepseek?

准备工作:Ollama安装包、Chatbox安装包 一、安装Ollama 官网下载: 在 Windows 上下载 Ollama:https://ollama.com/download/windows 下载较慢,大家可以自行搜索资源下载,直接双击安装即可。 安装完毕后,…

Redis之RedLock算法以及底层原理

自研redis分布式锁存在的问题以及面试切入点 lock加锁关键逻辑 unlock解锁的关键逻辑 使用Redis的分布式锁 之前手写的redis分布式锁有什么缺点?? Redis之父的RedLock算法 Redis也提供了Redlock算法,用来实现基于多个实例的分布式锁。…

【控制学】控制学分类

【控制学】控制学分类 文章目录 [TOC](文章目录) 前言一、工程控制论1. 经典控制理论2. 现代控制理论 二、生物控制论三、经济控制论总结 前言 控制学是物理、数学与工程的桥梁 提示:以下是本篇文章正文内容,下面案例可供参考 一、工程控制论 1. 经典…

Android 15 中 ApnPreferenceController 的 onStart 和 onStop 调用失效

背景 AOSP对APN入口(Access Point Name)实现中,overried了 onStart 和 onStop ,但实际执行中根本不会进入这两个接口的逻辑。 Q:MobileNetworkSettings (APN入口Preference所在的界面Fragement承载,TAG是NetworkSettings)的生命周期和ApnPreference 有什么关系? Not…

React 在组件间共享状态

在组件间共享状态 有时候,你希望两个组件的状态始终同步更改。要实现这一点,可以将相关 state 从这两个组件上移除,并把 state 放到它们的公共父级,再通过 props 将 state 传递给这两个组件。这被称为“状态提升”,这…

阶段性使用总结-通义灵码

序言 前段时间用通义灵码,参加了下数字中国闽江流域的比赛。https://www.dcic-china.com/competitions/10173 最后成绩一般般,106名,大概有2000多人参加这题目,估计有一堆小号。 按照下面这个思路建模的,迭代了大概15…

游戏引擎学习第228天

对上次的内容进行回顾,并为今天的开发环节做铺垫。 目前大部分功能我们已经完成了,唯一剩下的是一个我们知道存在但目前不会实际触发的 bug。这个 bug 的本质是在某些线程仍然访问一个已经被销毁的游戏模式(mode)之后的状态&…

游戏测试入门知识

高内聚指的是一个模块或组件内部的功能应该紧密相关。这意味着模块内的所有元素都应该致力于实现同一个目标或功能,并且该模块应当尽可能独立完成这一任务。 低耦合则是指不同模块之间的依赖程度较低,即一个模块的变化对其它模块造成的影响尽可能小。理…

L1-2 种钻石

题目 2019年10月29日,中央电视台专题报道,中国科学院在培育钻石领域,取得科技突破。科学家们用金刚石的籽晶片作为种子,利用甲烷气体在能量作用下形成碳的等离子体,慢慢地沉积到钻石种子上,一周“种”出了一…

基于开源技术生态的社群运营温度化策略研究——以“开源链动2+1模式AI智能名片S2B2C商城小程序源码”融合应用为例

摘要 在社交媒体与电商深度融合的背景下,社群运营的“温度化”成为企业构建用户忠诚度的核心命题。本文以康夏社群运营案例为切入点,结合“开源链动21模式AI智能名片S2B2C商城小程序源码”技术架构,分析其通过开源技术实现情感联结与商业价值…

编程技能:调试01,调试介绍

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏,故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 (一)WIn32 专栏导航 上一篇:编程基础:位运算07,右移 回到目录 下一…

从零开始学A2A二 : A2A 协议的技术架构与实现

A2A 协议的技术架构与实现 学习目标 技术架构掌握 深入理解 A2A 协议的分层架构设计掌握各层次的功能和职责理解协议的工作原理和数据流 实现能力培养 能够搭建基本的 A2A 服务端掌握客户端开发方法实现智能体间的有效通信 架构设计理解 理解与 MCP 的本质区别掌握多智能体协…

UE5滚轮控制目标臂长度调整相机距离

UE5通过鼠标滚轮来控制摄像机目标臂长度 , 调整相机距离 看图就行,不多说,照着连就完事了

python的strip()函数用法; 字符串切片操作

python的strip()函数用法 目录 python的strip()函数用法代码整体功能概述代码详细解释1. `answer["output_text"]`2. `.strip()`3. `final_answer = ...`字符串切片操作:answer[start_index + len("Helpful Answer:"):].strip()整体功能概述代码详细解释1…

云服务模式全知道:IaaS、PaaS、SaaS与DaaS深度解析

云服务模式详解:IaaS、PaaS、SaaS与DaaS 在当今数字化快速发展的时代,云计算已经成为企业和开发者不可或缺的一部分。它提供了灵活的资源和服务,使得用户可以根据自己的需求选择最合适的解决方案。本文将详细介绍四种主要的云服务模式&#…

AIDL 语言简介

目录 软件包类型注释导入AIDL 的后端AIDL 语言大致上基于 Java 语言。AIDL 文件不仅定义了接口本身,还会定义这个接口中用到的数据类型和常量。 软件包 每个 AIDL 文件都以一个可选软件包开头,该软件包与各个后端中的软件包名称相对应。软件包声明如下所示: package my.pac…

PINN:用深度学习PyTorch求解微分方程

神经网络技术已在计算机视觉与自然语言处理等多个领域实现了突破性进展。然而在微分方程求解领域,传统神经网络因其依赖大规模标记数据集的特性而表现出明显局限性。物理信息神经网络(Physics-Informed Neural Networks, PINN)通过将物理定律直接整合到学习过程中&a…

程序化广告行业(89/89):广告创意审核的关键要点与实践应用

程序化广告行业(89/89):广告创意审核的关键要点与实践应用 在程序化广告这个充满机遇与挑战的领域,持续学习和知识共享是我们不断进步的动力。一直以来,我都希望能和大家一同深入探索这个行业,今天让我们聚…

【ES6新特性】Proxy进阶实战

🌟ES6 Proxy终极指南:从拦截器到响应式框架实现🔥 一、💡 为什么Proxy是革命性的?先看痛点场景 1.1 Object.defineProperty的局限 😫 // Vue2响应式实现 let data { count: 0 }; Object.defineProperty(…