位置: 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的两种方式

  • 支付宝etc蓝牙连不上(支付宝etc蓝牙连接不上)

    支付宝etc蓝牙连不上(支付宝etc蓝牙连接不上)

  • 手机qq特别关心提示音怎么关(手机qq特别关心查询)

    手机qq特别关心提示音怎么关(手机qq特别关心查询)

  • 美团众包申诉技巧(美团众包申诉什么理由会成功)

    美团众包申诉技巧(美团众包申诉什么理由会成功)

  • 电脑不显示图标怎么回事(电脑不显示图标并且点鼠标没有用)

    电脑不显示图标怎么回事(电脑不显示图标并且点鼠标没有用)

  • 毒上面个人卖家发货是二手吗(毒app个人卖家)

    毒上面个人卖家发货是二手吗(毒app个人卖家)

  • 淘宝退款商家不处理多久自动退款(淘宝退款商家不同意咋办)

    淘宝退款商家不处理多久自动退款(淘宝退款商家不同意咋办)

  • 重启电脑一直显示正在准备windows(重启电脑一直显示正在重新启动怎么办)

    重启电脑一直显示正在准备windows(重启电脑一直显示正在重新启动怎么办)

  • 手机qq自动回复无效(手机qq自动回复怎么设置)

    手机qq自动回复无效(手机qq自动回复怎么设置)

  • 苹果7静音模式怎么取消(苹果7静音模式在哪里关闭)

    苹果7静音模式怎么取消(苹果7静音模式在哪里关闭)

  • 苹果开发者账号有什么用(苹果开发者账号购买)

    苹果开发者账号有什么用(苹果开发者账号购买)

  • qq语音翻译怎么关(qq语音翻译怎么弄)

    qq语音翻译怎么关(qq语音翻译怎么弄)

  • 在快手买衣服有质量问题不给退怎么办(在快手买衣服有假货吗)

    在快手买衣服有质量问题不给退怎么办(在快手买衣服有假货吗)

  • 拼多多如何一次拼多件(拼多多如何一次选多款)

    拼多多如何一次拼多件(拼多多如何一次选多款)

  • 苹果11信息闪光灯怎么开(苹果11信息闪光灯)

    苹果11信息闪光灯怎么开(苹果11信息闪光灯)

  • 手机qq如何开直播(手机qq开直播怎么开)

    手机qq如何开直播(手机qq开直播怎么开)

  • 蓝牙耳机怎么分左右耳(蓝牙耳机怎么分开连不同的手机)

    蓝牙耳机怎么分左右耳(蓝牙耳机怎么分开连不同的手机)

  • ipad屏幕常亮怎么回事(ipad一直亮屏对屏幕有损坏吗)

    ipad屏幕常亮怎么回事(ipad一直亮屏对屏幕有损坏吗)

  • iqoo怎么设置熄屏充电特效(iQOO怎么设置熄灭屏幕时间)

    iqoo怎么设置熄屏充电特效(iQOO怎么设置熄灭屏幕时间)

  • 安卓原生系统去哪下(安卓原生系统怎么用)

    安卓原生系统去哪下(安卓原生系统怎么用)

  • 美团商家版怎么设置折扣(美团商家版怎么拉黑人客人)

    美团商家版怎么设置折扣(美团商家版怎么拉黑人客人)

  • QQ音乐程序错误怎么回事(qq音乐程序错误怎么回事)

    QQ音乐程序错误怎么回事(qq音乐程序错误怎么回事)

  • 荣耀20支持otg吗(荣耀20有ot g功能吗)

    荣耀20支持otg吗(荣耀20有ot g功能吗)

  • 拼多多如何删除好友(拼多多如何删除聊天记录)

    拼多多如何删除好友(拼多多如何删除聊天记录)

  • iphonex内存不足怎么办(iphonex内存不足关机后无法开机)

    iphonex内存不足怎么办(iphonex内存不足关机后无法开机)

  •  小红书怎么开店铺(小红书怎么开通蒲公英)

    小红书怎么开店铺(小红书怎么开通蒲公英)

  • 已抵扣的进项税额怎么转出
  • 一般纳税人进项销项抵扣如何做账
  • 小规模企业跨月专票如何冲红
  • 税票抵扣是用进项票还是销项票
  • 410768金税盘
  • 增值税计算方式举例
  • 注册商标怎么做账
  • 股权转让涉及房屋产权变更怎么办
  • 融资购买无形资产例题
  • 财务报告分析主要内容
  • 事业单位职工福利费计提标准和使用
  • 技术服务行业分析
  • 应纳税额计算举例
  • 开错的发票正常入账吗
  • 律师事务所的会计账务处理
  • 企业为生产线员工怎么办
  • 承兑汇票章不清晰 情况说明
  • 研发费用如何分摊到多个项目的建议
  • 无形资产管理费用不计入
  • 材料发票清单
  • 合作社免税收入需要成本吗?
  • 前期投资费用怎么做账
  • 工会资助贫困大学生
  • 实发工资和报税工资
  • windows7旗舰版最新版本
  • 苹果14pro真实图片发朋圈
  • 企业年金基金收益
  • 车辆开具发票后会计分录?
  • php递归遍历文件夹
  • 旅行社小规模纳税人差额征税
  • js查找数组所有符合条件数据
  • 图像风格迁移网站
  • 公司期货套期保值会计处理方法
  • 土方工程合同签了一般多久开工
  • 增值税发票2年了还能开吗
  • 帝国cms如何搭建的
  • css样式居中
  • 一般开发票都需要什么开票信息包括了什么?
  • 小规模纳税人通行费可以抵扣吗
  • 委托加工物资验收时发生的成本怎么处理
  • 其他货币资金期末有余额吗
  • 三证合一指的是什么意思
  • 其他应收款审计说明怎么写
  • 设备融资租赁如何算综合利率
  • 递延资产放在资产负债表哪里
  • 固定资产清理账户期末有余额吗
  • 收取加盟费的条件
  • 事业单位实收资本如何做账
  • 废料销售的会计处理
  • 经纪代理服务范围
  • 给分公司开发票由总公司付款怎么办?
  • 库存商品的成本
  • 收不回来的账怎么处理
  • 开出普票会计分录
  • 生产性生物资产折旧计入什么科目
  • Navicat for MySQL导出表结构脚本的简单方法
  • linux中的ssh命令
  • win10微软在哪
  • xp输入法图标消失
  • Windows7 64位系统如何添加打印机图文教程
  • 列举linux常用的几个命令
  • linux diy
  • win10mobile官网
  • javascript ts
  • eclipse 单词
  • opengl 有哪些特点?与directx相比它有什么不同?
  • 超级硬盘数据恢复软件v2.7
  • jquery page
  • js文件设置编码
  • Unity3D游戏开发(第2版)pdf
  • unity移动
  • javascript如何学
  • 获取手机信息的渠道
  • 增值税申报表如何导出
  • 湖北税务发票查询系统网
  • 2019税务系统升级
  • 车辆购置税去哪个税务局交
  • 开票内容 大类
  • 发票挂失费用
  • 企业代收行政事业性收费
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设