3.26虎牙直播二面

larry233發表於2020-11-10

問的非常仔細,講不清楚是不會給過的

  • 1.STL用過嗎,說下用過STL的哪些元件

  • 2.map和unordered_map的區別
    一面也問了,當時答不好,現在又沒答好,而且問的更深。。
    map底層是紅黑樹,unordered_map是雜湊表
    紅黑樹的增刪查複雜度都是O(lgn),unordered_map是O(1)
    STL裡,unordered_map採用雜湊表實現,用存放hash衝突的值,hashmap會在插入元素時自動增加桶的數量

  • 3.什麼時候用map/unordered_map
    需要有序輸出的時候用map

  • 4.hash表的查詢複雜度?增刪呢?
    O(1)

  • 5.執行緒和程式的區別

  • 5.1.執行緒中的共享記憶體和程式之間的共享記憶體的區別

  • 6.TCP和UDP的區別

  • 7.什麼時候用TCP,什麼時候用UDP
    UDP實際用處並不大,只在區域網/NAT穿透才需要UDP,非常侷限
    視訊傳輸實際上也是基於HTTP的,而不是UDP
    非要讓UDP可靠,還不如用TCP
    也可以選擇QUIC協議,可靠的UDP協議
    1)建立連線延遲小,只需1.5RTT,加上加密控制
    2)連線遷移,TCP採用源目的的IP/PORT,切換網路時要重連,QUIC採用ID標識連線,切換網路無需重連
    3)前向糾錯
    4)改進的擁塞控制

  • 8.那視訊直播用的是什麼協議
    RTMPS,基於TCP+HTTPS

  • 9.為什麼用UDP,TCP不是也挺方便的嗎
    沒錯,TCP就是更方便

  • 10.那DNS用的是什麼協議
    DNS是TCP+UDP
    訪問區域網裡的DNS伺服器的時候,用UDP;到根伺服器裡查詢ip的時候,用TCP

  • 11.那迅雷的p2p下載用的是什麼協議

  • 12.問個問題,彈幕長1-30個字,敏感詞庫100w單詞,怎麼剔除敏感詞
    map/trie

  • 13.有的敏感詞有拼音代替,怎麼匹配到
    說了很久,沒給出他滿意的方案,最主要的原因是拼音可能匹配到多個詞語,所以比較複雜

  • 14.C++11之後的新特性?
    答了coroutine,然後被瘋狂問

  • 15.為什麼要coroutine?直接線上程上優化不好嗎
    1)協程在使用者態上實現,有自己的狀態暫存器和棧,切換開銷比執行緒小
    2)一個CPU可以開上萬個協程,高併發
    3)無需原子操作加鎖同步,降低開銷

  • 16.什麼時候用協程,什麼時候用執行緒?
    協程適用於IO密集型任務
    程式適合CPU密集型

  • 17.屏障在多執行緒中的作用,屏障是隻和編譯器優化相關的嗎?

相關文章