Go語言最新面試題及其解析(一)


https://developer.aliyun.com/article/741265?utm_content=g_1000097588

1.select是隨機的還是順序的?

select會隨機選擇一個可用通道做收發操作

2.Go語言局部變量分配在棧還是堆?

Go語言編譯器會自動決定把一個變量放在棧還是放在堆,編譯器會做逃逸分析,當發現變量的作用域沒有跑出函數范圍,就可以在棧上,反之則必須分配在堆。

查看資料

3.簡述一下你對Go垃圾回收機制的理解?

v1.1 STW
v1.3 Mark STW, Sweep 並行
v1.5 三色標記法
v1.8 hybrid write barrier(混合寫屏障:優化STW)

Golang垃圾回收剖析

4.簡述一下golang的協程調度原理?

M(machine): 代表着真正的執行計算資源,可以認為它就是os thread(系統線程)。
P(processor): 表示邏輯processor,是線程M的執行的上下文。
G(goroutine): 調度系統的最基本單位goroutine,存儲了goroutine的執行stack信息、goroutine狀態以及goroutine的任務函數等。

查看資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM