2022-07-11 BUD元宇宙面试记录及复盘(还是要多复习下语言的细节)
還不知道面試結果
面試流程
倒是沒讓做算法題
語言層面
map是并發安全的嗎
那肯定不是,map在寫的過程中會檢查標志位,如果有其他協程在寫,會直接panic。日常開發過程中也經常看到這個panic。
map可以在遍歷的時候刪除嗎
答:不可以,會遇到并發讀寫的panic
問:那如果是單協程呢?(問的有點東西,我楞了一下)
答:那應該可以(我不太確定,確實有點記不清了,實際上是可以的,但是從防御式編程的角度講,不管語言支不支持這樣做都不太好)
問: map刪除key之后會理解清空,刪除這塊占用的內存嗎?
答: 不會,會先寫標志位,后續再進行刪除。刪除時會檢查當前是否符合縮容的閾值,達到閾值進行縮容(可以,有點深度,問的我一愣一愣的,仔細回想了下相關知識點,但其實說的不完全對)
關于刪除流程的官方答案:
channel的底層結構
我傻了,一點印象都沒,所以換了一個問題
GMP調度模型了解吧,有緩沖的channel滿了之后,GMP現在是一個什么樣的狀態
答:這要分兩個場景來看,讀和寫,讀沒啥好說的,一直在消費。寫的話因為緩沖區滿了,會寫不進去,這時候寫協程g會堵塞,因為這類阻塞不是系統調用(我不太確定)。所以對應的m實際上不會阻塞,m可以去處理其他事情,例如幫忙消費隊列信息,等隊列有空位之后,再對這個g進行喚醒
答的時候我是有點懵的,gmp我還能掰扯兩句,但是綁了一個實際案例,我心里就有點打鼓,我感覺我說的基本沒錯,就是阻塞時候是不是系統調用不太確定,后面查了一下,應該是這樣的:滿了之后會再次構建一個g,把g加到待發送隊列,直接就掛起等待喚醒。感覺跟我說的差不多。
寫在最后
后面就是項目經歷了,就不說了。這么一復盤下來感覺還行?但是中間有一次換問題的操作,最終結果還是不太確定。
西巴
總結
以上是生活随笔為你收集整理的2022-07-11 BUD元宇宙面试记录及复盘(还是要多复习下语言的细节)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 短视频发展高峰论坛召开 爱奇艺号开放打通
- 下一篇: 第一次的结对编程