大家好,我是小林。前幾天,我寫一篇感受計算機基礎之美的文章:堅持一年了里面介紹了個心跳服務的宕機判斷算法,當時只是理論分析了下使用LRU算法來實現(xiàn),沒有手撕代碼。今天,就帶大家手撕LRU算法,先讓大家回顧下案例,然后后面就進行代碼講解。宕機判斷算法的設計心跳服務主要做兩件事情:發(fā)...
大家好,我是小林。昨天發(fā)了一篇「小林手撕LRU算法」的文章,當時這個算法寫比較趕,導致代碼里面有一些不對的地方,被細心的讀者發(fā)現(xiàn)了。有時候自己寫的代碼真的是當局者迷,旁觀者清,所以codereview環(huán)節(jié)是很重要的,很難有人能一次性寫出「完美」的代碼。這篇就不細說LRU算法的思路...
大家好,我是小林。最近有朋友跟我說,他在看面經(jīng)的時候,到哪都有我的影子。這個挺讓我意外的,沒想到我的圖解網(wǎng)絡和圖解系統(tǒng)已經(jīng)慢慢傳開了,形成一定的口碑了。不知道有多少讀者是通過別人文章認識我的,哈哈。這個事情就說到了,剎個車。上周有個讀者問我,這么個問題:TCP是面向字節(jié)流的協(xié)議,...
大家都知道雖然我是一個程序員,但是我非常熱愛運動,比如跳舞,這不每天回家睡前我都會在B站舞蹈區(qū)學習相關的舞蹈。昨天也不例外,我一洗漱完就飛奔坐在電腦前,打開B站舞蹈區(qū)準備學習咬人喵,欣小萌、小仙若他們新的舞蹈動作,不得不說老婆們跳的真好,連我這種內向的人也不自覺的跟著扭動了起來。...
感覺現(xiàn)在的獵頭行業(yè)也非常卷,幾乎每天都會接到獵頭電話,多的時候每天都有兩三個,而且多是重復的崗位。不知道是因為現(xiàn)在獵頭競爭激烈開始廣撒網(wǎng)了,還是有好多大廠開了新的業(yè)務線急需招人。很久之前一位獵頭加了我微信,當時我好奇心很強,就特別想知道獵頭都賺多少錢,平時工作都是怎么進行的。所以...
哲學時代我們所生活的世界是豐富多彩的,有藍天和白云,有大海和高山,有天上飛的小鳥,有地上跑的兔子,有綠樹和鮮花。可是,這世間萬物都是如何形成的?它們之間又有什么樣的聯(lián)系呢?在公元前600年左右,古希臘的殖民地出了一位聰明人名叫泰勒斯,他曾經(jīng)去過埃及,利用相似三角形的原理計算出了胡...
投稿作者OIer,目前對計算機及算法的了解主要在信息學競賽方面。本文主要講解平方求冪(快速冪)相關,凡涉及大整數(shù),都會進行對定值取模等處理,所以存儲越界導致的錯誤、位數(shù)過多導致的單次運算緩慢的問題,不在考慮范圍之內?!皟纭痹谠S多地方常被用到,如Hash相關、費馬小定理、進制轉換等...
經(jīng)常在知乎上可以看到這個問題,于是嘗試著回答了一下,沒想到國內C巨佬吳詠煒老師還給我點了個贊,讓我相當激動,下面具體介紹下!結論可能大家看上面的圖就知道了,沒有加return0;編譯器會自動添加一個。那怎么證明呢?可以查看相應的匯編代碼,查看匯編代碼推薦使用godbolt.org...
大家好,我是飛哥!經(jīng)常在后臺收到讀者的交流,Linux源碼那么龐大,飛哥你是如何讀的呢?由于問這個問題的太多,我想有必要專門寫一篇文章聊一聊。首先,我先說一點,其實我本人不是搞內核相關工作的。我和大多數(shù)同學都一樣,從事的也是應用層上的開發(fā),負責的是后端模塊。那我為什么要研究源碼這...
在《一文讀懂|進程怎么綁定CPU》這篇文章中介紹過,在Linux內核中會為每個CPU創(chuàng)建一個可運行進程隊列,由于每個CPU都擁有一個可運行進程隊列,那么就有可能會出現(xiàn)每個可運行進程隊列之間的進程數(shù)不一樣的問題,這就是所謂的?負載不均衡?問題,如下圖所示:(圖1)最極端的情況是,一...
前言TCP協(xié)議是大廠面試必問的知識點。整理了15道非常經(jīng)典的TCP面試題,希望大家都找到理想的offer呀公眾號:撿田螺的小男孩1.?講下TCP三次握手流程開始客戶端和服務器都處于CLOSED狀態(tài),然后服務端開始監(jiān)聽某個端口,進入LISTEN狀態(tài)第一次握手(SYN=1,seq=x...
今天給大家介紹我的一個好友,一位目前正在京東的大佬,本文介紹一下他從小白到高手的逆襲進互聯(lián)網(wǎng)大廠經(jīng)歷,很有啟發(fā)性,相信讀后定能有所收獲:博主大學期間掌握C/C等語言后一直非常迷茫,學會這些語言就能成為編程高手嗎?這能讓我編寫出很厲害的程序嗎?如果不能我還需要掌握哪些技術?沒有人能...
因為某些原因,github訪問速度確實太慢了,圖片經(jīng)常刷不出來,甚至會出現(xiàn)項目無法下載的情況。碼云雖好,可目前還是無法代替github在編程界的地位,所以今天團長給大家推薦幾種提高github訪問速度的方案,挑自己喜歡的嘗試就好!1.GitHub鏡像訪問這里提供兩個最常用的鏡像地...
前言源碼之前,了無秘密。上一篇,我們剖析了STL迭代器源碼與traits編程技法?,這一篇我們來學習下容器。在STL編程中,容器是我們經(jīng)常會用到的一種數(shù)據(jù)結構,容器分為序列式容器和關聯(lián)式容器。兩者的本質區(qū)別在于:序列式容器是通過元素在容器中的位置順序存儲和訪問元素,而關聯(lián)容器則是...
C20帶著Coroutines來了!花了一兩周的時間后,我想寫寫C20協(xié)程的基本用法,因為C的協(xié)程讓我感到很奇怪,寫一個協(xié)程程序十分費勁。讓我們拋去復雜的東西,來看看寫一個C協(xié)程需要哪些東西。編譯器支持由于C20還沒被所有編譯器完全支持,首先需要確保你的編譯器實現(xiàn)了Corouti...