select、poll、epoll 的区别
「select 有 1024 限制、epoll 是 O(1)」—— 两句都对,但都不是答案。
複製提示詞,選一家接著聊 —— 它會當面試官逐幕問你,而不是把答案倒給你。
手機上裝了對應 App 的,系統會直接開 App。微信裡點不開外部 App,得先用瀏覽器打開。
複製走的那段末尾帶著判卷用的底牌,別自己先讀 —— 自己推出來過才算學到。
说得出三者的区别只是第一层。第二幕开始问:每调用一次,内核和用户态之间搬了什么、遍历了什么,三者省下的到底是哪一趟开销。
第三幕逼数字:一万个连接里活跃一百个,和一万个全都活跃,差多少;后一种情况下它还占便宜吗。
第五幕是边界:两种触发模式,各写错一次会漏掉什么事件 —— 要你说出具体那段写法,不接受「注意用非阻塞」这种话。
這一問壓在哪一塊
IO 模型
排程與切換
這一份的正文在倉庫裡 (末尾就是底牌,點進去會看見)
練過沒有
登入之後可以記下「這道題我練過」,下次回來看得到是哪天練的。
練過的人寫的心得
還沒有人寫。練完之後,說說你和模型聊出了什麼 —— 哪一幕被問住了,哪個結論你後來改了。
怎麼用
這一批是拷問,不是講課 —— 它模擬的就是面試現場,答不上來是正常結局,它不會替你圓場,也不會在你說了半句之後幫你說完。想把某一塊學懂而不是練面試,去「電腦系統」「資料庫」「演算法」那幾個系列,那邊是引導姿態。
一句八股怎麼撐滿 40 分鐘:五層階梯
- 一層 · 定義 —— 這幾個詞各自是什麼、差別列幾條。答不上來說明沒背過。
- 二層 · 機制 —— 這個差別在系統裡具體是哪個結構、哪一步造成的。答不上來說明背過,但只背了結論。
- 三層 · 數字 —— 差多少?幾微秒、幾倍、幾次 IO。答不上來說明沒上過手。
- 四層 · 選擇 —— 給一個具體場景,選哪個、代價是什麼、什麼時候這個選擇是錯的。答不上來說明不會用。
- 五層 · 邊界 —— 你剛才那套說法在什麼情況下不成立。答不上來說明背得全,但沒真懂。
判卷線:到第四層才算能過面試,到第五層才算真的懂,只停在第一層的一律記成背的。
六幕,頭尾兩幕是這個系列獨有的
- 第一幕它不打斷、不點評、不提示 —— 讓你把現在背的那一版一口氣講完,錄下來當基線。它憋著不糾正你是故意的,別以為它沒在聽。
- 中間四幕按五層階梯往下挖,主戰場在第三幕的機制和數字上。
- 最後一幕掐 60 秒要你重講一遍,和開場那版並排比 —— 面試現場要交付的不是「我懂」,是一段說得出口的話。
怎麼開始
- 挑一份,點開它,把提示詞複製走。
- 新開一個空對話貼進去,什麼都別說,等它問第一個問題。
- 然後像面試一樣,把你背的那一版一口氣講完。講得爛沒關係 —— 那是基線,收尾時要拿它對照的。
- 後面它會開始追。答不上來是正常結局:這不是學習材料,是模擬面試。
中途隨時能喊的五個口令
跳过立刻進下一幕提示給一個提示,不是答案直说吧直接把完整答案講完重讲直接跳到最後一幕,重錄 60 秒版本並和開場版對比复盘立刻跳到收尾,輸出複盤卡片
三條坑
- 複製走的那段末尾帶著底牌,別自己先讀。這一批的底牌裡有一欄叫「背誦指紋」,寫的就是你大概率會脫口而出的那幾句原話 —— 看了就沒得練了。
- 別在該給數字的地方給形容詞。「快很多」「開銷很小」這類說法它會當場按住要數 —— 說得出結論、說不出數量級的,這一批一律記成背的。
- 最後兩組綁定語言:寫 Java 的做 Java 那組,寫 Go 的做 Go 那組。兩組不是互為翻譯,選題各選各的,不用都做。
一週內要面後端,就按「行程和執行緒」「TCP 和 UDP」「為什麼用 B+ 樹」「隔離級別」「穿透擊穿雪崩」「冪等」這條線走,這六道出現頻率最高而且互不重疊。被問麻了想補短板,先做「從輸入 URL 到頁面出來」—— 它會橫著把你的薄弱環節暴露一遍,再按暴露出來的方向挑。
登入之後可以寫心得。