当前位置: 首页 > news >正文

ui网站界面设计模板网站换关键词

ui网站界面设计模板,网站换关键词,外贸网站搭建服务商,安卓应用市场哪个好channel是不同协程之间异步通信的数据结构。 基本用法 1 构造 ch:make(chan int)//无缓冲 ch:make(chan int,10)//有缓冲2 读操作 val:<-ch <-ch val,ok:<-ch3 写 var data int ch<-data4 关闭 close(ch)5 多路复用 select{ case <-parent.Done():child.…

channel是不同协程之间异步通信的数据结构。

基本用法

1 构造

ch:=make(chan int)//无缓冲
ch:=make(chan int,10)//有缓冲

2 读操作

val:=<-ch
<-ch
val,ok:=<-ch

3 写

var data int
ch<-data

4 关闭

close(ch)

5 多路复用

select{
case <-parent.Done():child.cancel(false,parent.Err())
case <-child.Done():
}

实现对多个channel同时监听

select{
case <-ch1://// do some logic
case ch3 <-data://// do some logic
default:// 放行
}

核心数据结构

三个核心:
1 并发读写安全,需要锁
2 环形缓冲区(数组+头尾指针),好处是复用数组空间,同时保证内存地址连续
3 承载阻塞goroutine的队列

type hchan struct{ // runtime包下qcount unit  // total data in the queuedataqsize uint // size of the circular queuebuf unsafe.Pointer  // points to an array of dataqsiz elementselemsize uint 16closed uint 32elemtype *_type  //element typesendx uint  //send indexrecvx uint  //receive indexsendq waitq  // list of send waitersrecvq waitq  //list of recv waiterslock mutex
}

hchan:channel数据结构

  • qcount:当前channel中存在多少个元素
  • dataqsize:当前channel中能存放的元素容量
  • buf:channel中用于存放元素的环形缓冲区
  • elemsize:channel中存放元素类型的大小
  • closed:标识channel是否关闭
  • elemtype:channel元素类型
  • sendx:发送元素进入环形缓冲区的index
  • recvx:接收元素所处的环形缓冲区的index
  • sendq:因发送而陷入阻塞的协程队列
  • recvq:因接收而陷入阻塞的协程队列
type waitq struct{ // 阻塞的协程队列first *sudog  // 队列头部last *sudog  //队列尾部
}
type sudog struct{ // 阻塞的协程队列g *gprev *sudog  // 队列头部next *sudog  //队列尾部elem unsafe.Pointer  // data element(may point to stack)isSelect boolc *hchan
}
  • sudog:用于包装协程的节点
  • g:goroutine,协程
  • prev:队列中的上一个节点
  • next:队列中的下一个节点
  • isSelect:标识当前协程是否处在select多路复用的流程中
  • c:标识与当前sudog交互的chan
http://www.yayakq.cn/news/719014/

相关文章:

  • 发布网站建设信息自己做的网站可以百度推广吗
  • 天津 网站设计公司wordpress也没修改
  • 贵州省建设厅考试网站东庄水利建设公司网站
  • 颜色搭配对网站重要性如何选网站空间
  • 3合1网站建设白城百度网站建设
  • 建设网站需要什么条件做网站应该会什么问题
  • 中国免费网站服务器主机域名信用信息查询公示系统
  • 网站建设公司生存百度首页关键词优化
  • 网站排名优化快速黄岐建网站
  • 站酷的网址站长统计幸福宝网站统计
  • 徐州自助建站系统个人网页制作成品免费开源代码
  • 网站备案的幕布尺寸wordpress 4.5下载
  • 企业手机网站建设机构网站建设皖icp
  • 哪个网站做的简历最好公司做的网站版权归谁所有
  • 植物网站设计方案网址大全在线免费观看
  • 代码优化网站排名wordpress 多备份
  • 佛山专业网站建设报价广西南宁市有哪些网络公司
  • 做企业网站电话销售话术巴中网站开发
  • 门户网站建设思维导图收钱码合并的网站怎么做
  • 陕西西安建设厅官方网站c语言除了做网站还能干什么
  • 专业企业网站制作南京网站设计公司哪儿济南兴田德润怎么联系
  • 旅游搜索网站开发做网站是自己公司做好还是外包好
  • 淘宝网站做淘宝客学校网站管理系统免费版
  • 网络营销期末考试试题及答案沈阳百度首页优化
  • 辽宁注册公司网站实现网站开发
  • 呼和浩特市网站建设公司如何登录微信开发者平台
  • 网站开发和浏览器兼容问题东莞网站建设公司网站建设
  • 重庆市网站推广企业网站html
  • 建设六马路小学 网站聚名网买卖域名合法吗
  • 动态型网站建设网站建设需要提供那些资料