![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang面试题
Grayan
尽情地享受好时光吧,我们不会再在如此年轻的时候相遇了。
展开
-
golang_面试题07:关于map的值不可寻址,回传值的理解
关于 map,以下代码有什么问题,应该如何改进?package maintype Person struct { Age int}func (p *Person) GrowUp() { p.Age++}func main() { m := map[string]Person{ "zhangsan": Person{Age: 20}, ...原创 2019-04-27 19:37:44 · 1261 阅读 · 2 评论 -
golang面试题分析01_defer和函数返回值
知识点:defer在函数结束前执行(在return前被执行)函数返回值名字 会在函数起始处 被初始化为 对应类型的初始值 并作用于整个函数package mainfunc main() { println(DeferFunc1(1)) println(DeferFunc2(1)) println(DeferFunc3(1))}func DeferFunc1(i int) (...原创 2019-03-25 23:49:22 · 472 阅读 · 0 评论 -
golang面试题分析03_GMP调度器
GMP调度操作系统中的程序可以往下分解为进程、线程和协程。Go中,协程被称为goroutine,被runtime进行调度。GMP调度中,G代表goroutine,M代表线程,P是Processor,它包含了运行goroutine的资源,只有当 M 关联一个 P 后才能执行 G 。调度器的两大思想:复用线程:2个体现:1.work stealing,当本线程无可运行的G时,尝试从其它县城绑...原创 2019-03-31 18:45:04 · 2598 阅读 · 0 评论 -
golang面试题分析04_Beego的热更新(热升级)
热更新基本原理:热更新主进程fork一个进程,然后子进程exec相应的程序。其中子进程会复用主进程的句柄,数据和堆栈。子进程一旦调用exec类函数,它本身就会“死亡”,系统把代码段替换为新的程序的代码,废弃原来的数据段和堆栈段,并为新程序分配新的数据段和堆栈段,只留下进程号。整体对系统而言,还是同一个进程,不过已经是另一个程序了。具体步骤:让子进程复用主进程的net.Listener的句柄...原创 2019-03-31 19:54:15 · 2529 阅读 · 0 评论