go面试题整理(附带部分自己的解答)

更新时间:2023-05-14 04:22:53 阅读: 评论:0

go⾯试题整理(附带部分⾃⼰的解答)
解答题:go相关
go的调度
答:
go的调度原理是基于GMP模型,G代表⼀个goroutine,不限制数量;M=machine,代表⼀个线程,最⼤1万,所有G任务还是在M上执⾏;
P=processor代表⼀个处理器,每⼀个允许的M都会绑定⼀个G,默认与逻辑CPU数量相等(通过
runtime.GOMAXPROCS(runtime.NumCPU())设置)。
go调⽤过程:
创建⼀个G对象
雅思机经下载如果还有空闲的的P,创建⼀个M
M会启动⼀个底层线程,循环执⾏能找到的G
G的执⾏顺序是先从本地队列找,本地没找到从全局队列找。⼀次性转移(全局G个数/P个数)个,再去其它P中找(⼀次性转移⼀半)以上的G任务是按照队列顺序执⾏(也就是go函数的调⽤顺序)。
另外在启动时会有⼀个专门的sysmon来监控和管理,记录所有P的G任务计数schedtick。如果某个P的schedtick⼀直没有递增,说明这个P⼀直在执⾏⼀个G任务,如果超过⼀定时间就会为G增加标记,并且该G执⾏⾮内联函数时中断⾃⼰并把⾃⼰加到队尾。
你在哪英文>英孚教育网站
go struct能不能⽐较
答:
可以能,也可以不能。
大学生英语自我介绍因为go存在不能使⽤==判断类型:map、slice,如果struct包含这些类型的字段,则不能⽐较。
这两种类型也不能作为map的key。
go defer(for defer)
答:
ice breakers
类似栈操作,后进先出。
letting go什么意思
dpph因为go的return是⼀个⾮原⼦性操作,⽐如语句 return i,实际上分两步进⾏,即将i值存⼊栈中作为返回值,然后执⾏跳转,⽽defer的执⾏时机正是跳转前,所以说defer执⾏时还是有机会操作返回值的。
lect可以⽤于什么byul
nice to meet you什么意思
>referrals

本文发布于:2023-05-14 04:22:53,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/622642.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:类型   操作   数量   作为   任务   不能   队列   部分
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图