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

  • 华为p20pro能用5g吗(华为p20pro能用广电卡吗)

    华为p20pro能用5g吗(华为p20pro能用广电卡吗)

  • 卡贴机能用多久(苹果卡贴机能用多久)

    卡贴机能用多久(苹果卡贴机能用多久)

  • 为什么华为手机连不上wifi(为什么华为手机突然黑屏然后按开机键都不显示)

    为什么华为手机连不上wifi(为什么华为手机突然黑屏然后按开机键都不显示)

  • 微信怎么才能改微信号(微信怎么才能改对方的头像)

    微信怎么才能改微信号(微信怎么才能改对方的头像)

  • 京东交易受限24小时恢复(京东交易受限多久能解除)

    京东交易受限24小时恢复(京东交易受限多久能解除)

  • ipad限制使用时间	(ipad限制使用时间软件推荐)

    ipad限制使用时间 (ipad限制使用时间软件推荐)

  • 华为能下载两个微信吗(华为能下载两个支付宝吗)

    华为能下载两个微信吗(华为能下载两个支付宝吗)

  • vivos5处理器相当于骁龙多少(vivos5手机处理器怎么样)

    vivos5处理器相当于骁龙多少(vivos5手机处理器怎么样)

  • 把对方加入黑名单还能看到朋友圈吗(把对方加入黑名单,对方知道吗)

    把对方加入黑名单还能看到朋友圈吗(把对方加入黑名单,对方知道吗)

  • 抖音隐藏作品会降权吗(抖音隐藏作品会显示数量吗)

    抖音隐藏作品会降权吗(抖音隐藏作品会显示数量吗)

  • 苹果11掉电快正常吗(苹果11掉电量快)

    苹果11掉电快正常吗(苹果11掉电量快)

  • 华为nova7充电要多久(华为nova7充电100%后多长时间断电)

    华为nova7充电要多久(华为nova7充电100%后多长时间断电)

  • hmaal00是华为什么型号手机(hmaal00是华为什么型号)

    hmaal00是华为什么型号手机(hmaal00是华为什么型号)

  • qq临时会话是什么意思(qq中临时会话是什么)

    qq临时会话是什么意思(qq中临时会话是什么)

  • 探探被禁言一天怎么办(探探被禁言一天怎么解封)

    探探被禁言一天怎么办(探探被禁言一天怎么解封)

  • 操作系统的分类(操作系统的分类及具体举例)

    操作系统的分类(操作系统的分类及具体举例)

  • iphonexr蓝牙无法配对(苹果xr蓝牙无法连接)

    iphonexr蓝牙无法配对(苹果xr蓝牙无法连接)

  • 怎么把照片放进文件夹里(怎么把照片放进word表格)

    怎么把照片放进文件夹里(怎么把照片放进word表格)

  • 三星s10翻新机怎么辨别(三星翻新手机)

    三星s10翻新机怎么辨别(三星翻新手机)

  • 最早出现的计算机网是(最早出现的计算机网络体系结构和协议标准)

    最早出现的计算机网是(最早出现的计算机网络体系结构和协议标准)

  • word封面下划线对齐(word封面下划线怎么设置对齐)

    word封面下划线对齐(word封面下划线怎么设置对齐)

  • 华为p30pro怎样截屏(华为p30pro怎样截长屏)

    华为p30pro怎样截屏(华为p30pro怎样截长屏)

  • 苹果6怎么设置一键亮屏(苹果6怎么设置动态壁纸)

    苹果6怎么设置一键亮屏(苹果6怎么设置动态壁纸)

  • 快手怎么看到别人关注的人(快手怎么看到别人的隐私作品)

    快手怎么看到别人关注的人(快手怎么看到别人的隐私作品)

  • 抖音芝麻认证安全吗(抖音芝麻查功能)

    抖音芝麻认证安全吗(抖音芝麻查功能)

  • 解散微信群有啥显示(解散微信群信息是否还在?)

    解散微信群有啥显示(解散微信群信息是否还在?)

  • 小红书的衣服在哪下单(小红书的衣服怎么在淘宝找到)

    小红书的衣服在哪下单(小红书的衣服怎么在淘宝找到)

  • 对称加密算法有哪些(对称加密算法有AES)

    对称加密算法有哪些(对称加密算法有AES)

  • 在Win7系统中,如何删除系统还原点?(在win7系统中,添加打印机驱动程序)

    在Win7系统中,如何删除系统还原点?(在win7系统中,添加打印机驱动程序)

  • InfoTool.exe是什么进程 InfoTool进程是什么文件的(info是什么软件)

    InfoTool.exe是什么进程 InfoTool进程是什么文件的(info是什么软件)

  • 收到待报解预算收入怎么查退的什么税
  • 房地产企业税收优惠政策
  • 控股收益
  • 旅游业差额开票怎么做账
  • 金税盘没有报税管理怎么把发票明细怎么导出
  • 会计凭证负数金额怎么填
  • 税款所属期什么意思
  • 一般纳税人月销售额多少免征增值税
  • 购物返现活动文案
  • 个人名义帮公司贷款
  • 广告服务印花税怎么交
  • 关于环保税的计税依据
  • 有限合伙的定义
  • 专用发票可以重复盖章吗
  • 海外代付属于外债吗
  • 污水处理增值税征收品目
  • 新公司税控盘购买流程
  • win11系统更新卡在25%
  • 老毛桃u盘启动盘制作工具怎么安装win10系统 老毛桃u盘安装win10系统图文教程
  • 如何不同版本复制粘贴
  • 网页打不开是什么
  • 流动资产周转率计算公式
  • 固定资产的专票可以抵扣吗
  • 票已收到款未付怎么办
  • 母公司给全资子公司担保需要决议吗
  • 税收分类编码怎么添加
  • win10打开txt
  • 金税盘的服务费
  • PHP:oci_fetch_all()的用法_Oracle函数
  • 银行卡账户年费是什么意思 为什么扣我银行卡的钱
  • wamp使用
  • 补缴房产税土地使用税怎么算
  • 简易计税行业
  • 增值税结算方式的筹划
  • 瑞士伯尔尼小镇
  • 因质量问题免费赔偿
  • php反转
  • 小程序生命周期钩子
  • 10倍理论
  • 普通动产和特殊动产如何分类
  • python怎么设置窗口界面
  • 帝国cms到底好不好
  • mysql5.7.17在win2008R2的64位系统安装与配置实例
  • 专用发票必须按照销售方开户行及账号付款吗
  • 建筑工程承包合同
  • sqlserver 删除数据
  • 销售返利可以税前扣除吗
  • 平均资产总额与资产总额的关系
  • 管理费用算营业外支出吗
  • 固定资产转换为投资性房地产转换日
  • 待认证转出
  • 上月暂估成本次月用冲回吗
  • 股权转让的会计资料归谁所有
  • 企业购买原材料属于什么活动
  • 未开票收入下月开票会计分录
  • 公司费用报销单样本
  • ubuntu20.04怎么安装
  • 东芝笔记本配件
  • 如何用u盘安装win8操作系统
  • win10错误提示
  • win7 安装系统
  • javascript date函数
  • jquery示例
  • cocos-2dx
  • Node.js中的construct
  • Nodejs实现多人同时在线移动鼠标的小游戏分享
  • vim tagbar
  • php 时间差
  • js弹出小窗口
  • nodejs递归创建目录
  • python爬虫的几种方法
  • unity3d游戏开发笔记本推荐
  • python批量删除行
  • 银行赠送礼品活动方案
  • 开票信息电子版怎么做
  • 重庆电子税务局官网登录入口
  • 如何当好一名税务局长
  • 深圳税务开票软件发票下载
  • 伊川娘娘山传说
  • 航信报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设