日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go总结的面试题目

發布時間:2024/9/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go总结的面试题目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

channel線程安全嗎

是安全的

HashMap 線程安全原因

不安全?

1.同時添加相同的元素可能會發生碰撞覆蓋2.同時對數組進行擴容會有數據丟失

HashMap 不安全解決

Hashtable ConcurrentHashMap Synchronized Map

slice與arr區別?

● 切片是指針類型,數組是值類型● 數組的長度是固定的,而切片不是(切片是動態的數組)● 切片比數組多一個屬性:容量(cap)● 切片的底層是數組

讀寫鎖或者互斥鎖讀的時候能寫

Go中讀寫鎖包括讀鎖和寫鎖, 多個讀線程可以同時訪問共享數據; 寫線程必須等待所有讀線程都釋放鎖以后,才能取得鎖; 同樣的,讀線程必須等待寫線程釋放鎖后,才能取得鎖,也就是說讀寫鎖要確保的是如下互斥關系, 可以 同時讀, 讀-寫,寫-寫都是互斥的。

Channel是同步的還是異步的.

Channel是異步進行的。 channel存在3種狀態:nil,未初始化的狀態,只進行了聲明,或者手動賦值為nil active,正常的channel,可讀或者可寫 close,已關閉,千萬不要誤認為關閉channel后,channel的值是nil

實現消息隊列(多生產者,多消費者)

package mainimport ("fmt""time" )func producer(pname string, ch chan int) {for i := 0; i < 4; i++ {fmt.Println("producer--", pname, ":", i)ch <- i} }func consumer(cname string, ch chan int) {//可以循環 for i := range ch 來不斷從 channel 接收值,直到它被關閉。for i := range ch {fmt.Println("consumer-----------", cname, ":", i)} }func main() {//用channel來傳遞"產品", 不再需要自己去加鎖維護一個全局的阻塞隊列ch := make(chan int)go producer("生產者1", ch)go consumer("消費者1", ch)time.Sleep(10 * time.Second)close(ch) }

?孤兒進程,僵尸進程

孤兒進程:一個父進程退出,而它的一個或多個子進程還在運行,那么那些子進程將成為孤兒進程。孤兒進程將被 init進程(進程號為1)所收養,并由init進程對它們完成狀態收集工作。僵尸進程:一個進程使用fork創建子進程,如果子進程退出,而父進程并沒有調用wait或waitpid獲取子進程的 狀態信息,那么子進程的進程描述符仍然保存在系統中。這種進程稱之為僵死進程。

tcp與udp區別

tcp傳輸的是數據流,而udp是數據包,tcp會進過三次握手,udp不需要?

TCP三次握手四次揮手

https://blog.csdn.net/fujian9544/article/details/100045552

?

總結

以上是生活随笔為你收集整理的Go总结的面试题目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。