1.select是隨機的仍是順序的?golang
答:select會隨機選擇一個可用通道作收發操做
2.Go語言局部變量分配在棧仍是堆?設計模式
答:Go語言**編譯器**會自動決定把一個變量放在棧仍是放在堆,編譯器會作逃逸分析,當發現變量的做用域沒有跑出函數範圍,就能夠在棧上,反之則必須分配在堆。
三、struct能夠比較嗎?數組
答:能夠比較也有不能夠比較的(map func slice)
4.簡述一下golang的協程調度原理?函數
答:M(machine): 表明着真正的執行計算資源,能夠認爲它就是os thread(系統線程)。 P(processor): 表示邏輯processor,是線程M的執行的上下文。 G(goroutine): 調度系統的最基本單位goroutine,存儲了goroutine的執行stack信息、goroutine狀態以及goroutine的任務函數等。
5.切片和數組有什麼區別?線程
6.new和make有什麼區別?設計
7.GoLang協程的理解?指針
跳躍表在 Redis 的惟一做用, 就是實現有序集數據類型。
跳躍表將指向有序集的 score 值和 member 域的指針做爲元素, 並以 score 值爲索引, 對有序集元素進行排序code