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