位置: IT常识 - 正文

Go 语言入门 1-管道的特性及实现原理(go语言ui)

编辑:rootadmin
入坑 go 也快一年了,从今天开始会定期分享一下 Go 语言学习过程中的一些基础知识。 go 语言中的管道, 主要是用于协程之间的通信, 比 UNIX 的管道更加轻量和易用。 我们先看一下管道的数据结构: type hchan struct { gcount uint // 环形队列剩余元素个数 d ...

推荐整理分享Go 语言入门 1-管道的特性及实现原理(go语言ui),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:go 语言 gui,go 语言 gui,go 语言 gui,go语言 _,go语言从入门到实战,go语言基础入门,go 语言 gui,go语言入门指南,内容如对您有帮助,希望把文章链接给更多的朋友!

入坑 go 也快一年了,从今天开始会定期分享一下 Go 语言学习过程中的一些基础知识。

go 语言中的管道, 主要是用于协程之间的通信, 比 UNIX 的管道更加轻量和易用。

我们先看一下管道的数据结构:

type hchan struct {gcountuint//环形队列剩余元素个数dataqsizuint//环形队列长度bufunsafe.Pointer // 环形队列指针elemsizeuint16 // 每个元素大小closeduint32//标识关闭状态elemtype*_type// 元素类型sendxuint//下一个元素写入时的下标recvxuint//下一个元素读取时的下标recvqwaitq // 等待读消息的队列sendqwaitq // 等待写消息的队列lockmutex//互斥锁,保障管道无法并发读写}

源码链接:

https://github.com/golang/go/blob/0d0193409492b96881be6407ad50123e3557fdfb/src/runtime/chan.go#L33

通过上述数据结构, 我们可以理解管道是由三部分组成的:

Go 语言入门 1-管道的特性及实现原理(go语言ui)

环形队列

读写等待队列

队列元素基本信息

从管道读取数据时, 如果管道缓冲区为空或者没有缓冲区, 那么当前协程就会阻塞, 然后放入 recvq 队列中。

往管道写入数据时,如果管道缓冲区为空或者缓冲区满了,那么当前协程就会阻塞, 然后放入 sendq 队列中。

读阻塞的协程会被新来的写数据的协程唤醒。

写阻塞的协程会被新来的读数据的协程唤醒。

同时上述数据结构中, 我们可以看到一个管道中只能传递一种元素类型。如果想数据类型动态化, 可以传递 interface。

管道的操作:

初始化有两种方式:

变量

本文链接地址:https://www.jiuchutong.com/zhishi/311844.html 转载请保留说明!

上一篇:【HDLBits刷题日记】05 More Verilog Features(高效刷题app)

下一篇:Spring(十五):Spring整合MyBatis的两种方式

  • 黑鲨4spro怎么开5g(黑鲨4怎么开5g)

    黑鲨4spro怎么开5g(黑鲨4怎么开5g)

  • 快手怎么关闭通讯录好友(快手怎么关闭通过手机号找到我)

    快手怎么关闭通讯录好友(快手怎么关闭通过手机号找到我)

  • 苹果怎么添加录屏在状态栏(苹果怎么添加录屏按钮)

    苹果怎么添加录屏在状态栏(苹果怎么添加录屏按钮)

  • vivo手机应用权限管理在哪里(vivo手机应用权管理)

    vivo手机应用权限管理在哪里(vivo手机应用权管理)

  • 红米k30pro是双扬声器吗(小米k30pro双扬声器吗)

    红米k30pro是双扬声器吗(小米k30pro双扬声器吗)

  • qq怎么创群(qq怎么创群聊手机)

    qq怎么创群(qq怎么创群聊手机)

  • 闲鱼禁言七天怎样解决(闲鱼禁言七天怎么解封)

    闲鱼禁言七天怎样解决(闲鱼禁言七天怎么解封)

  • excel平均年龄怎么算(excel平均年龄怎么算出来的)

    excel平均年龄怎么算(excel平均年龄怎么算出来的)

  • 华为nova6开发者选项在哪(华为nova6开发者选项在哪里打开)

    华为nova6开发者选项在哪(华为nova6开发者选项在哪里打开)

  • 双5g手机和单5g手机区别(双5g的手机)

    双5g手机和单5g手机区别(双5g的手机)

  • 华为mate30电量显示怎么设置(华为mate 30手机电量)

    华为mate30电量显示怎么设置(华为mate 30手机电量)

  • select属于什么类功能(select语句)

    select属于什么类功能(select语句)

  • 爱奇艺视频怎么下载到手机(爱奇艺视频怎么转换成mp4格式)

    爱奇艺视频怎么下载到手机(爱奇艺视频怎么转换成mp4格式)

  • 发抖音怎么隐藏抖音号(发抖音怎么隐藏ip地址)

    发抖音怎么隐藏抖音号(发抖音怎么隐藏ip地址)

  • 为什么微信开启了消息提示但是还是没有(为什么微信开启通知还不通知)

    为什么微信开启了消息提示但是还是没有(为什么微信开启通知还不通知)

  • mix2s充电器支持pd吗(mix2的充电器)

    mix2s充电器支持pd吗(mix2的充电器)

  • 淘宝个人会员卡在哪(淘宝个人会员卡有什么用)

    淘宝个人会员卡在哪(淘宝个人会员卡有什么用)

  • 惠普打印机e3什么意思(惠普打印机机e3)

    惠普打印机e3什么意思(惠普打印机机e3)

  • 手机号被标注骚扰电话怎么取消(手机号被标注骚扰电话多久不显示)

    手机号被标注骚扰电话怎么取消(手机号被标注骚扰电话多久不显示)

  • 剪映怎么给视频加音乐字幕(剪映怎么给视频加旁白)

    剪映怎么给视频加音乐字幕(剪映怎么给视频加旁白)

  • 爱奇艺账号注销要多久成功(爱奇艺账号注销了怎么恢复)

    爱奇艺账号注销要多久成功(爱奇艺账号注销了怎么恢复)

  • 怎么打开记录运动数据(记录运动设置在哪)

    怎么打开记录运动数据(记录运动设置在哪)

  • Win11 Dev 预览版 22483更新发布推送(附完整更新内容)(win10dev预览版)

    Win11 Dev 预览版 22483更新发布推送(附完整更新内容)(win10dev预览版)

  • nvm管理node版本(nvm for window)

    nvm管理node版本(nvm for window)

  • SpringSecurity入门(springsecurity有什么用)

    SpringSecurity入门(springsecurity有什么用)

  • 撤销增值税申报流程
  • 如何做好存货管理,从哪方面去做
  • 从厂家拿货怎么谈价格
  • 电子发票可以更改备注吗
  • 应付账款不需要付怎样做会计分录
  • 全国通用机打销售票违法吗
  • 辞退员工赔偿计算公式
  • 增值税发票选择确认平台勾选注意事项
  • 研发费用加计扣除条件
  • 固定资产怎么确认是不是投入使用了
  • 差旅费报销单属于什么凭证?
  • 调整增值税误差的原因
  • 公司代收生育津贴怎么做账
  • 待认证转进项税额转出会计分录
  • 公司破产后资产怎么处理
  • 企业的房产税节税有哪些方案?
  • 我国进口货物交税如何计算? 
  • 核定征收企业所得税能否享受税收优惠
  • 未认证进项税额转出
  • 生产成本转入库存商品金额怎么算
  • 未达到起征点销售额会计分录
  • 资产收购账务处理
  • 销售费用中的运输费属于什么科目
  • 企业委托研发过程中发生的研发费用如何加计扣除?
  • 分期收款发出商品属于什么科目
  • 员工垫付公司钱怎么入账
  • html5 video标签
  • 不动产抵押合同管辖法院
  • 私车公用的费用可以抵税吗现在
  • bp程序是什么
  • 投标保证金退回是什么意思
  • 银行账户销户余额转入另外的公司账户分录
  • 外籍人员个人所得税政策2023规定
  • .msc是什么意思
  • 企业预付工程车租赁费
  • 控制器操作视频
  • ipcrm命令
  • 研发人员工资计入什么科目
  • discuz隐藏查看
  • 稿费支付方式怎么填
  • 印花税计税基础含增值税
  • 企业所得税汇算清缴扣除标准2023
  • 内帐税金会计分录
  • 营业收入在财务报表上用什么字母表示
  • 资产减值损失属于什么科目
  • sqlserver数据库操作
  • 应付职工薪酬余额方向
  • 固定资产大修理和更新改造的区别
  • 资产处置损益属于什么会计要素
  • 企业对于无法收回的应收账款,应列入
  • 所得税汇算清缴退税会计分录怎么做
  • 法院退诉讼费账务处理
  • 机票退票手续费太贵怎么办
  • 软件开发费属于研发和技术服务还是信息技术服务
  • 固定资产转让开票大类是什么
  • 税前利息为什么这么高
  • 融资租赁本金和租金的区别
  • 购买固定资产是应付账款还是其他应付款
  • 应付职工薪酬讲解
  • 年初建账考虑要点有哪些
  • mysql常用查询
  • sql server中一个数据库可以有多个文件组
  • ubuntu16.04命令行配置静态ip
  • xp系统如何设置用户密码
  • 双系统麻烦吗
  • 电脑重新安装windows后还用激活吗
  • linux scp命令的用法详解
  • win8.1一直开机,无法进入主界面
  • window预览
  • mac连电视
  • linux有哪几种安装方式
  • 搭建android开发环境时为什么要先安装jdk
  • js 文件分割
  • numpy基础知识
  • android的数据储存方式
  • 安卓新安装包
  • android如何使用
  • python程序解读举例
  • 一般纳税人开劳务费税率是多少2023
  • 印花税当期没有发生可以不用申报吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设