字節(jié)暑期實(shí)習(xí)一面涼經(jīng)
04-07 這周的面試。已經(jīng)掛了。發(fā)面經(jīng)攢人品
八股和項(xiàng)目大概問(wèn)了 25 分鐘。我手撕做得太久了。
自我介紹
八股
- 了解 c++17 中的哪些新特性?介紹一下
- 說(shuō)了結(jié)構(gòu)化綁定
- c++20 呢?
- 說(shuō)自己了解概念和約束
- 追問(wèn)是否用過(guò)概念
- 知道萬(wàn)能引用嗎?它應(yīng)該在什么時(shí)候使用?舉一個(gè)標(biāo)準(zhǔn)庫(kù)的例子?
- 看你寫(xiě)了了解 java,go,rust,大概是怎么樣的程度?了解 rust 里面的生命周期嗎?
- 當(dāng)用戶在瀏覽器里面請(qǐng)求一個(gè)網(wǎng)站的時(shí)候,計(jì)算機(jī)里面會(huì)發(fā)生什么?從網(wǎng)絡(luò)協(xié)議棧,包括 https,http 協(xié)議來(lái)回答
- 介紹 dns 的查詢方式
- 了解 https 如何建立連接嗎?
- 介紹進(jìn)程和線程的區(qū)別
- 進(jìn)程間的通訊方式。你用過(guò)哪些?
- 你在用 socket 編程的過(guò)程中,有沒(méi)有遇到過(guò)丟數(shù)據(jù)的場(chǎng)景?
- tcp 是怎么保證不會(huì)丟數(shù)據(jù)的?
項(xiàng)目
簡(jiǎn)歷只有一個(gè)重寫(xiě) muduo 庫(kù)。
- 介紹你寫(xiě)的網(wǎng)絡(luò)庫(kù),工作流程,有哪些線程,每個(gè)線程是如何協(xié)作的
- 如何傳新 tcp 連接的文件描述符的?
- 工作線程需要監(jiān)聽(tīng)用戶 fd 的數(shù)據(jù)嗎?
- worker 是不是會(huì)一直持有一個(gè)連接?怎么做負(fù)載均衡?你怎么分配任務(wù)?
- 如果你要做負(fù)載均衡,你準(zhǔn)備怎么做?
- 你的 worker 需要做負(fù)載均衡,那你的 accept 線程有負(fù)載均衡的問(wèn)題嗎?它可能會(huì)有什么問(wèn)題?
- accept 線程也有性能瓶頸,你有更好的辦法嗎?
- 你認(rèn)為 acceptor worker 模型架構(gòu)的缺點(diǎn)是什么?
- 面試官提示:你要想,有一個(gè)連接在建立之后,它要經(jīng)過(guò)復(fù)雜的流程才能被處理?連接關(guān)閉之后,如果又建立一個(gè)連接,它又需要走一遍這個(gè)流程
- 在你的這個(gè)架構(gòu)里面,每次都需要和 acceptor 交互,然后投遞給 worker,這個(gè)過(guò)程中是不是有一定的資源開(kāi)銷成本,這里的吞吐會(huì)不會(huì)成為瓶頸?
- 假如你有多個(gè) acceptor,你認(rèn)為它還有額外的缺點(diǎn)嗎?
做題
重組 n 個(gè)迭代器,是《合并 K 個(gè)升序鏈表》變式。
要求組合出一個(gè)新的迭代器,依次返回“從 n 個(gè)迭代器各自的有序數(shù)組,按序合并后的數(shù)組的”數(shù)字。
#暑期實(shí)習(xí)##字節(jié)##C++一面##面經(jīng)#