一.調(diào)整目錄結(jié)構(gòu)為了方便編譯,現(xiàn)在我們將前面文章的代碼結(jié)構(gòu)做如下調(diào)整。root@ubuntu:/mnt/hgfs/code/chat#?tree?..├──?chat_client│???├──?include│???├──?Makefile│???├──?obj│???│???...
首先聲明一點(diǎn),虛表并非是C語(yǔ)言的官方標(biāo)準(zhǔn)的一部分,只是各家編譯器廠商在實(shí)現(xiàn)多態(tài)時(shí)的解決方案。另外即使同為虛表不同的編譯器對(duì)于虛表的設(shè)計(jì)可能也是不同的,本文主要基于ItaniumCABI(適用于gcc和clang)。從C的POD類(lèi)型到C的類(lèi)首先回顧一下C語(yǔ)言純POD的結(jié)構(gòu)體(str...
前言:一轉(zhuǎn)眼從事前端已經(jīng)6年了,從當(dāng)時(shí)的小白到如今大廠的技術(shù)專(zhuān)家,中間也走過(guò)不少?gòu)澛?,從今天開(kāi)始我會(huì)持續(xù)更新前端技術(shù)文章,并且整體的文章會(huì)進(jìn)行體系梳理,整個(gè)知識(shí)體系分為:基礎(chǔ)精講,框架講解,框架及工具原理,前端面試題精講,大廠面試題收錄精講,前端新技術(shù)講解。通過(guò)完善的技術(shù)精講助力...
計(jì)算機(jī)網(wǎng)絡(luò)的原理其實(shí)很簡(jiǎn)單,但是套上專(zhuān)業(yè)名詞后,那些看不見(jiàn)、摸不著的概念,會(huì)讓人云里霧里。其實(shí)理解了網(wǎng)絡(luò)名詞,再去學(xué)習(xí)網(wǎng)絡(luò),會(huì)感覺(jué)像打開(kāi)了任督二脈,發(fā)現(xiàn)網(wǎng)絡(luò)不過(guò)如此。因此,掌握一定數(shù)量的網(wǎng)絡(luò)概念名詞是很有必要的,現(xiàn)在有一本匯總了98個(gè)常見(jiàn)網(wǎng)絡(luò)名詞和60張配圖的武林秘籍,見(jiàn)你有緣就...
過(guò)去的二十年中,我們似乎總能夠聽(tīng)到層出不窮的致富故事,但近些年來(lái),這樣的事情似乎越來(lái)越少,不常聽(tīng)說(shuō)了,好像互聯(lián)網(wǎng)的小富挺多,但波瀾起伏的大富,正在慢慢遠(yuǎn)離我們。來(lái)看一段文字,是一位剛剛失業(yè)的四十歲高級(jí)碼農(nóng),在近二十年的歲月中,努力積攢下巨額財(cái)富的經(jīng)歷:這是知乎問(wèn)題「40歲因?yàn)樨?cái)務(wù)...
↓推薦關(guān)注↓無(wú)論你寫(xiě)什么樣的代碼都會(huì)交給CPU來(lái)執(zhí)行,所以,如果你想寫(xiě)出性能比較高的代碼,這篇文章中提到的技術(shù)還是值得認(rèn)真學(xué)習(xí)的。另外,千萬(wàn)別覺(jué)得這些東西沒(méi)用,這些東西非常有用,十多年前就是這些知識(shí)在性能調(diào)優(yōu)上幫了我的很多大忙,從而跟很多人拉開(kāi)了差距……基礎(chǔ)知識(shí)首先,我們都知道現(xiàn)...
1.單線程/進(jìn)程在TCP通信過(guò)程中,服務(wù)器端啟動(dòng)之后可以同時(shí)和多個(gè)客戶端建立連接,并進(jìn)行網(wǎng)絡(luò)通信,但是在介紹TCP通信流程的時(shí)候,提供的服務(wù)器代碼卻不能完成這樣的需求,先簡(jiǎn)單的看一下之前的服務(wù)器代碼的處理思路,再來(lái)分析代碼中的弊端://?server.c#include?#inc...
在掌握了基于TCP的套接字通信流程之后,為了方便使用,提高編碼效率,可以對(duì)通信操作進(jìn)行封裝,本著有淺入深的原則,先基于C語(yǔ)言進(jìn)行面向過(guò)程的函數(shù)封裝,然后再基于C進(jìn)行面向?qū)ο蟮念?lèi)封裝。1.基于C語(yǔ)言的封裝基于TCP的套接字通信分為兩部分:服務(wù)器端通信和客戶端通信。我們只要掌握了通信...
大家好,我是小林。前幾天發(fā)了一篇「為了拿捏Redis數(shù)據(jù)結(jié)構(gòu),我畫(huà)了20張圖」,收獲了很多好評(píng),但是當(dāng)時(shí)急于發(fā)文,有些地方?jīng)]有寫(xiě)完,也有些地方寫(xiě)的不是很完善。然后我最近花了很多時(shí)間來(lái)完善文章,不僅加入了Redis新版本的兩個(gè)數(shù)據(jù)結(jié)構(gòu),也在之前的文章內(nèi)容加入了很多內(nèi)容。這次完整版終...
大家好,我是小林。今天分享一位老哥的故事,他2006年從浙大碩士畢業(yè),一畢業(yè)就在上海從事了軟件開(kāi)發(fā)的工作。在魔都待了8年,并且在上海完成了落戶,結(jié)婚,買(mǎi)房,生子,但是最后老哥還是舉家回到了成都。是什么讓他離開(kāi)“穩(wěn)定扎根”的上海呢?讓我們一起來(lái)聽(tīng)聽(tīng)他的想法。作者:肖飛,諾西軟件架構(gòu)...
大家好,我是小林。Redis為什么那么快?除了它是內(nèi)存數(shù)據(jù)庫(kù),使得所有的操作都在內(nèi)存上進(jìn)行之外,還有一個(gè)重要因素,它實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),使得我們對(duì)數(shù)據(jù)進(jìn)行增刪查改操作時(shí),Redis能高效的處理。因此,這次我們就來(lái)好好聊一下Redis數(shù)據(jù)結(jié)構(gòu),這個(gè)在面試中太常問(wèn)了。注意,Redis數(shù)據(jù)...
大家好,我是小林。最近,一些讀者朋友跟我抱怨,國(guó)內(nèi)競(jìng)爭(zhēng)壓力大,想去外企,甚至國(guó)外試試機(jī)會(huì),咨詢下我的建議。怎奈我也沒(méi)在國(guó)外呆過(guò),沒(méi)有發(fā)言權(quán),但利弊肯定是有的,最起碼在國(guó)外離家人就遠(yuǎn)了,更何況近年的疫情,或多或少都不讓人放心。但是一些外企在國(guó)內(nèi)都是可以遠(yuǎn)程辦公的,這點(diǎn)倒是很舒服。正...
不多說(shuō),直接發(fā)車(chē)!今天我們要講的就是MySQL的容災(zāi)。容災(zāi)一直是后臺(tái)開(kāi)發(fā)中的重點(diǎn),如果是線上服務(wù)出了問(wèn)題,沒(méi)有合適的容災(zāi)機(jī)制,那么對(duì)業(yè)務(wù)來(lái)說(shuō)一定會(huì)是個(gè)沉重的打擊,但是容災(zāi)同時(shí)也是拉開(kāi)能力差距的難點(diǎn),需要有強(qiáng)勁的實(shí)力才能把握住。不知道阿柴能不能經(jīng)受住這樣的考驗(yàn)。現(xiàn)在,就讓我們繼續(xù)開(kāi)...
象山公園??理想情況下,我們希望擁有無(wú)限大的內(nèi)存容量,這樣就可以立刻訪問(wèn)任何一個(gè)特定的機(jī)器字,但我們不得不認(rèn)識(shí)到有可能需要構(gòu)建分層結(jié)構(gòu)的存儲(chǔ)器,每一層次容量都要大于前一層次,但其訪問(wèn)速度也要更慢一些。早在計(jì)算機(jī)剛被發(fā)明出來(lái)的時(shí)候,那些計(jì)算科學(xué)界的先驅(qū)們就已經(jīng)預(yù)測(cè)到之后的計(jì)算機(jī)結(jié)構(gòu)...
大家好,我是小林。之前有個(gè)讀者問(wèn)我,他是轉(zhuǎn)行自學(xué)計(jì)算機(jī)的,問(wèn)我有沒(méi)有必要包裝三年工作經(jīng)驗(yàn)。這我肯定肯定不建議的,做人還是要誠(chéng)實(shí)守信。包裝過(guò)的簡(jiǎn)歷,即時(shí)你真的運(yùn)氣好,蒙混過(guò)了面試官,但是你入職后很容易就暴露出來(lái)的,你明明沒(méi)有工作經(jīng)驗(yàn),卻說(shuō)自己工作過(guò)幾年,結(jié)果你入職工作后,問(wèn)你啥都不...