
golang面试题
Grayan
尽情地享受好时光吧,我们不会再在如此年轻的时候相遇了。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
golang_面试题07:关于map的值不可寻址,回传值的理解
关于 map,以下代码有什么问题,应该如何改进? package main type 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 · 1325 阅读 · 2 评论 -
golang面试题分析01_defer和函数返回值
知识点: defer在函数结束前执行(在return前被执行) 函数返回值名字 会在函数起始处 被初始化为 对应类型的初始值 并作用于整个函数 package main func main() { println(DeferFunc1(1)) println(DeferFunc2(1)) println(DeferFunc3(1)) } func DeferFunc1(i int) (...原创 2019-03-25 23:49:22 · 517 阅读 · 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 · 2666 阅读 · 0 评论 -
golang面试题分析04_Beego的热更新(热升级)
热更新基本原理: 热更新主进程fork一个进程,然后子进程exec相应的程序。其中子进程会复用主进程的句柄,数据和堆栈。子进程一旦调用exec类函数,它本身就会“死亡”,系统把代码段替换为新的程序的代码,废弃原来的数据段和堆栈段,并为新程序分配新的数据段和堆栈段,只留下进程号。整体对系统而言,还是同一个进程,不过已经是另一个程序了。 具体步骤: 让子进程复用主进程的net.Listener的句柄...原创 2019-03-31 19:54:15 · 2617 阅读 · 0 评论