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