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

  • 安全管家怎么样(安全管家是什么样的软件)

    安全管家怎么样(安全管家是什么样的软件)

  • 华为nova4怎么设置自动锁屏(华为nova4怎么设置时间24小时制)

    华为nova4怎么设置自动锁屏(华为nova4怎么设置时间24小时制)

  • 爱奇艺怎么修改清晰度(爱奇艺怎么修改密码)

    爱奇艺怎么修改清晰度(爱奇艺怎么修改密码)

  • 苹果如何开启来电闪光灯(苹果如何开启来电免打扰)

    苹果如何开启来电闪光灯(苹果如何开启来电免打扰)

  • 微信正在输入是什么情况(微信正在输入是什么情况下)

    微信正在输入是什么情况(微信正在输入是什么情况下)

  • 打印机状态空闲打印不出来怎么办(打印机状态空闲一打印就错误)

    打印机状态空闲打印不出来怎么办(打印机状态空闲一打印就错误)

  • 苹果6s怎么开空调(苹果6s怎么开空调软件)

    苹果6s怎么开空调(苹果6s怎么开空调软件)

  • p40卡槽怎么放卡(p40的卡槽怎么打开)

    p40卡槽怎么放卡(p40的卡槽怎么打开)

  • 华为手机怎么延长屏保时间(华为手机怎么延时拍照)

    华为手机怎么延长屏保时间(华为手机怎么延时拍照)

  • 苹果7摔了一下黑屏了怎么办(苹果7摔了一下无服务了怎么办)

    苹果7摔了一下黑屏了怎么办(苹果7摔了一下无服务了怎么办)

  • 苹果替用外貌什么作用(ipone替用外貌)

    苹果替用外貌什么作用(ipone替用外貌)

  • 淘宝退款红包的钱退到哪里了(淘宝退款红包的钱是平台出的吗)

    淘宝退款红包的钱退到哪里了(淘宝退款红包的钱是平台出的吗)

  • 剪刀式和蝴蝶式键盘的区别(剪刀与蝴蝶)

    剪刀式和蝴蝶式键盘的区别(剪刀与蝴蝶)

  • 苹果11怎么设置可以省电(苹果11怎么设置密码锁屏)

    苹果11怎么设置可以省电(苹果11怎么设置密码锁屏)

  • oppor11怎么关机(oppor11s怎样关机)

    oppor11怎么关机(oppor11s怎样关机)

  • 如何通过手机号查找抖音(如何通过手机号查询个人信息)

    如何通过手机号查找抖音(如何通过手机号查询个人信息)

  • 搜狗输入法自动搜索关闭(搜狗输入法自动计算怎么设置)

    搜狗输入法自动搜索关闭(搜狗输入法自动计算怎么设置)

  • 南京地铁电子卡出站怎么用(南京地铁电子卡怎么扣钱)

    南京地铁电子卡出站怎么用(南京地铁电子卡怎么扣钱)

  • 华为移动服务有何用(华为移动服务是什么功能)

    华为移动服务有何用(华为移动服务是什么功能)

  • 拼多多会员名在哪里看(拼多多会员名是昵称吗)

    拼多多会员名在哪里看(拼多多会员名是昵称吗)

  • 美图秀秀怎么截图(美图秀秀怎么截取视频的一部分)

    美图秀秀怎么截图(美图秀秀怎么截取视频的一部分)

  • 三星s10收不到短信(三星s10收不到短信信息)

    三星s10收不到短信(三星s10收不到短信信息)

  • ati2mdxx.exe是什么进程 ati2mdxx进程信息查询

    ati2mdxx.exe是什么进程 ati2mdxx进程信息查询

  • python异常捕捉对字符串进行判断(python捕获异常继续执行)

    python异常捕捉对字符串进行判断(python捕获异常继续执行)

  • 印花税的处理
  • 印花税滞纳金应计入什么
  • 个人所得税中的综合所得包括哪些
  • 月底计提分录
  • 异地预缴增值税账务处理
  • 以前年度多交的企业所得税怎么调整
  • 办公室空调维修报告
  • 什么情况下征税
  • 增值税专用发票怎么开
  • 专票未认证是什么意思
  • 福利性收入属于什么分配
  • 应纳税调增调减会计分录
  • 建筑物加高违法么
  • 企业所得税季度纳税申报表 a类
  • 企业计提工资的操作步骤
  • 核定征收小微企业
  • 含税进货价款怎么算
  • 专票住宿费认证怎么操作
  • 租金小规模开票税率
  • 公司一季度报表一般是什么时候出
  • 期间费用包括哪些?
  • 固定资产一次性扣除账务处理
  • 英雄联盟登录失效怎么回事
  • 工会经费的银行怎么入账
  • 应收账款余额包括预收账款
  • 企业收到保险公司的赔款
  • vue使用方法
  • 如何调整任务栏图标大小
  • 其他应收款年末余额较大
  • 工程复工程序是什么
  • phpstudy怎么配置php环境
  • php主要用于
  • php返回数据给ajax
  • ChatDoctor本地部署应用的实战方案
  • php搜索功能怎么实现
  • 外地工程预缴税款怎么入账啊
  • 商品流通企业商品验收入库流程
  • 可以主营业务成本增加现金减少吗
  • mysql 内连接查询
  • 网上学电脑哪个软件好
  • mongodb管理工具
  • 酒店营业税率是多少
  • 工程发票多少点
  • 其他债权投资是长期投资吗
  • 招待费专票不可以抵扣
  • 增值税进项税额加计抵减会计处理
  • 兼职劳务报酬税率
  • 什么叫印花税税率
  • 进项税有余额在报表如何反应
  • 购进商品用于销售
  • 库存商品期末为负数
  • 一般纳税人城建税怎么计算
  • 怎样分辨假钱
  • 企业叉车折旧年限几年
  • 企业筹建期间利润计算
  • 市政配套费交给哪个部门
  • 新企业设置账簿
  • sql数据库怎么执行命令
  • sql server中的文件位置可以很灵活
  • svchost一直在下载什么
  • win10小娜语音激活
  • window10怎么设置蓝牙
  • edif是什么文件
  • winxp怎么自动开机
  • 苹果官网
  • 华硕电脑升级win11
  • runservice.exe - runservice是什么进程 有什么用
  • linux查看所有硬件信息命令
  • 微软商城会员
  • 学会这8个技巧让你做出的菜味道更好
  • middle html
  • css分页样式
  • sequelize-cli
  • android中的webview
  • node.js java 性能
  • 静态文件格式有哪些
  • 修改应用程序图标
  • 公司开票明细如何查询
  • 出口退税的期限是多长
  • 预交增值税附加税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设