栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Goroutines切换时,CPU上下文会发生什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Goroutines切换时,CPU上下文会发生什么?

Goroutine,内存和OS线程

Go具有可根据需要增长的分段堆栈。运行时执行调度,而不是操作系统。运行时将goroutine复用到相对较少的实际OS线程上。

Goroutines切换成本

Goroutine是协同调度的,当发生切换时,仅需要保存/恢复3个寄存器-
程序计数器,堆栈指针和DX。从操作系统的角度来看,Go程序的行为就像一个事件驱动程序。

Goroutine和CPU

您不能直接控制运行时将创建的线程数。可以通过调用来设置变量GOMAXPROCS来设置程序使用的处理器内核数量

runtime.GOMAXPROCS(n)

程序计数器

和一个完全不同的故事

在计算中,程序是计算机要执行的一组特定的有序操作。指令是由程序赋予计算机处理器的命令。在计算机内,地址是内存或存储中的特定位置。程序计数器寄存器是处理器使用的一小部分数据存放位置之一。

这是关于程序如何工作以及如何相互通信的另一个故事,它与goroutine主题没有直接关系。

资料来源:

  • http://blog.nindalf.com/how-goroutines-work/
  • https://gobyexample.com/goroutines
  • http://tleyden.github.io/blog/2014/10/30/goroutines-vs-threads/
  • http://whatis.techtarget.com/definition/program-counter


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436373.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号