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

有电脑网站怎样建手机正规网络游戏平台

有电脑网站怎样建手机,正规网络游戏平台,免费软件制作网站模板,衡水建网站Go并发基础 并行#xff1a;程序在任意时刻内都是同时运行的 并发#xff1a;程序在单位时间内都是同时运行的 ​扇入#xff1a;多条通道聚合到一条通道中#xff08;select聚合#xff0c;加密解密服务#xff09; ​扇出#xff1a;一条通道发散到多条通道中#x…Go并发基础 并行程序在任意时刻内都是同时运行的 并发程序在单位时间内都是同时运行的 ​扇入多条通道聚合到一条通道中select聚合加密解密服务 ​扇出一条通道发散到多条通道中goroutine实现并发Web服务器并发处理用户请求 ​ 在java/c中我们要实现并发编程的时候我们通常需要自己维护一个线程池并且需要自己去包装一个又一个的任务同时需要自己去调度线程执行任务并维护上下文切换。 ​ Go语言中的goroutine就是这样一种机制goroutine的概念类似于线程但 goroutine是由Go的运行时runtime调度和管理的。Go程序会智能地将 goroutine 中的任务合理地分配给每个CPU。Go语言之所以被称为现代化的编程语言就是因为它在语言层面已经内置了调度和上下文切换的机制。 1goroutine可以在用户空间调度避免内核态和用户态的切换。 2goroutine是语言原生支持的屏蔽了大部分复杂底层实现。 3goroutine更小的栈空间允许用户创建更多的实例。 Go语言并行调度原理 GPM是Go语言运行时runtime层面实现是go语言自己实现的一套调度系统。区别于操作系统调度OS线程。 G就是goroutine它不是一个运行实体而是用于存放并发执行的代码入口地址上下文运行环境关联的P和M运行栈等元信息。为了减少对象的分配和回收G对象可以被复用执行完的goroutine可以重新初始化。 PProcessor管理着一组goroutine队列P是存储当前goroutine运行的上下文环境函数指针堆栈地址及地址边界的一个数据结构而非控制实体P会对自己管理的goroutine队列做一些调度比如把占用CPU时间较长的goroutine暂停、运行后续的goroutine等等当自己的队列消费完了就去全局队列里取如果全局队列里也消费完了会去其他P的队列里抢任务。 Mmachine是Go运行时runtime对操作系统内核线程的虚拟是操作系统层面调度和运行的实体。 M与内核线程一般是一一映射的关系 一个groutine最终是要放到M上执行的M仅负责执行资源来自于P和GP与M一般也是一一对应的。他们关系是 P管理着一组G挂载在M上运行。当一个G长久阻塞在一个M上时runtime会新建一个M绑定相应的P阻塞G所在的P会把其他的G 挂载在新建的M上。当旧的G阻塞完成或者认为其已经死掉时 回收旧的M。 M拥有自己的栈g0但只有当拿到P才可以执行M会在堆栈g0上恢复G的上下文完成后切换到G的栈开始执行 Go启动初始化过程 分配和检查栈空间。初始化参数和环境变量。当前运行线程标记为m0即程序主线程。调用运行时初始化函数runtime.schedinit 进行初始化。(内存空间分配GC生成空闲P列表)在m0上调度第一个G这个G负责运行runtime.main函数。runtime.main会拉起运行时的监控线程(对应一个M专门监控、控制程序的内存和调度信息)然后调用main包的init()初始化函数最后执行main函数。 总结 一个操作系统线程对应用户态多个goroutine。go程序可以同时使用多个操作系统线程。goroutine和OS线程是多对多的关系即m:n。 命令作用runtime.GOMAXPROCS(x)x0时为查询可以并发执行的goroutine数目 x0时为设置GOMAXPROCS值runtime.Goexit结束当前goroutine运行(会调用其defer但是不会产生panic)runtime.Gosched放弃当前调度执行的机会将当前goroutine放到Processor的队尾runtime.NumGoroutine返回当前程序的goroutine个数 Go语言为什么并行更快 ​ Go语言相比起其他语言的优势在于OS线程是由OS内核来调度的goroutine则是由Go运行时runtime自己的调度器调度的这个调度器使用一个称为m:n调度的技术复用/调度m个goroutine到n个OS线程。 goroutine的调度是在用户态下完成的 不涉及内核态与用户态之间的频繁切换包括内存的分配与释放都是在用户态维护着一块大的内存池 不直接调用系统的malloc函数除非内存池需要改变成本比调度OS线程低很多。 另一方面充分利用了多核的硬件资源近似的把若干goroutine均分在物理线程上 再加上本身goroutine的超轻量以上种种保证了go调度方面的性能。
http://www.zqtcl.cn/news/114841/

相关文章:

  • 泉州建站公司模板马云谈2025的房价
  • 动漫制作专业什么电脑最适合沈阳关键词优化报价
  • seo企业网站源码虚拟主机如何建设多个网站
  • 电商 网站模板借钱软件推广微信hyhyk1
  • 免费网站模板psd建网站程序工具
  • 企业建设网站专业服务网站设置文件夹权限
  • 用ip做网站威海市城乡建设局网站
  • 网页网站开发设计工作前景做网站 兼职
  • c 网站开发类似优酷乐山旅游英文网站建设
  • 网站空间租用哪家好小程序免费制作平台企业中心
  • 个人网站可以做哪些主题网站别人做的收到方正侵权
  • 网站seo最新优化方法网络营销做的好的企业
  • 做网站如何防止被坑做的网站第二年续费多钱
  • 做网站注意哪些方面聊城住房建设局网站
  • ftp wordpress 搬站太仓做网站公司
  • php美食网站开发背景天津微外卖网站建设
  • 如何建造企业网站北京金山办公软件公司
  • dedecms织梦搬家公司网站模板贵阳国家经济技术开发区门户网站
  • 网站架构设计师网络工程师的就业前景
  • 网站建设所需人员世界各国o2o响应式网站
  • 成都网站设计最加科技企业宣传片观后感
  • 人社门户网站建设方案非官方网站建设
  • 深圳系统网站开发做家具定制的设计网站
  • 网站制作学费多少钱网络推广的常用方法
  • 个人作品网站模板百度上做网站需要钱吗
  • 苏州网站建设行业研究思路 网站建设
  • 金泉网做网站找谁网站的结构布局
  • 网站开发摊销年限柳州网站建设哪家
  • 佛山市和城乡建设局网站首页武建安装公司新闻
  • 如何宣传商务网站网页制作与设计自考