資源簡(jiǎn)介:前情提要只要寫(xiě)過(guò) c/c++ 的項(xiàng)目的童鞋應(yīng)該對(duì)對(duì)象生命周期的問(wèn)題記憶猶新。怕有人還不理解這個(gè)問(wèn)題,筆者先介紹下什么是生命周期的問(wèn)題?一個(gè) struct 結(jié)構(gòu)體生命周期分為三個(gè)步驟:出生:malloc 分配結(jié)構(gòu)體內(nèi)存,并且初始化;使用:這個(gè)就是對(duì)內(nèi)存的常規(guī)使用了;銷毀:free 釋放這個(gè)內(nèi)存塊;最典型結(jié)構(gòu)體“生命周期”問(wèn)題的...
資源簡(jiǎn)介:來(lái)源:CPP開(kāi)發(fā)前沿以良好的方式編寫(xiě)C++ class假設(shè)現(xiàn)在我們要實(shí)現(xiàn)一個(gè)復(fù)數(shù)類complex,在類的實(shí)現(xiàn)過(guò)程中探索良好的編程習(xí)慣。① Header(頭文件)中的防衛(wèi)式聲明complex.h:# ifndef __COMPLEX__# define __COMPLEX__class complex{}# endif防止頭文件的內(nèi)容被多次包含。② 把數(shù)據(jù)放在private聲明下,提供接口訪問(wèn)數(shù)據(jù)# ifndef ...
資源簡(jiǎn)介:置頂/星標(biāo)公眾號(hào)????,硬核文章第一時(shí)間送達(dá)!為什么要并發(fā)編程大型的軟件項(xiàng)目常常包含非常多的任務(wù)需要處理。例如:對(duì)于大量數(shù)據(jù)的數(shù)據(jù)流處理,或者是包含復(fù)雜GUI界面的應(yīng)用程序。如果將所有的任務(wù)都以串行的方式執(zhí)行,則整個(gè)系統(tǒng)的效率將會(huì)非常低下,應(yīng)用程序的用戶體驗(yàn)會(huì)非常的差。另一方面,自上個(gè)世紀(jì)六七十年代英特爾...
資源簡(jiǎn)介:導(dǎo)讀:對(duì)于工程經(jīng)驗(yàn)比較豐富的同學(xué),并發(fā)應(yīng)該也并不是陌生的概念了,但是每個(gè)人所理解的并發(fā)問(wèn)題,卻又往往并不統(tǒng)一,本文系統(tǒng)梳理了百度C++工程師在進(jìn)行并發(fā)優(yōu)化時(shí)所作的工作。全文15706字,預(yù)計(jì)閱讀時(shí)間24分鐘。一、背景簡(jiǎn)單回顧一下,一個(gè)程序的性能構(gòu)成要件大概有三個(gè),即算法復(fù)雜度、IO開(kāi)銷和并發(fā)能力。由于現(xiàn)代計(jì)算機(jī)...
資源簡(jiǎn)介:導(dǎo)讀:在百度看似簡(jiǎn)簡(jiǎn)單單的界面后面,是遍布全國(guó)的各個(gè)數(shù)據(jù)中心里,運(yùn)轉(zhuǎn)著的海量C++服務(wù)。如何提升性能,降低延時(shí)和成本就成了百度C++工程師的必修功課。伴隨著優(yōu)化的深入攻堅(jiān),誕生并積累下來(lái)一系列的性能優(yōu)化理論和方案,其中不乏一些冷門(mén)但精巧實(shí)用的經(jīng)驗(yàn)和技巧。本文從內(nèi)存訪問(wèn)角度,收集總結(jié)了一些具有通用意義的典型...
資源簡(jiǎn)介:掃碼關(guān)注“程序喵大人”,選擇“星標(biāo)”公眾號(hào)重磅干貨,第一時(shí)間送達(dá)!?來(lái)源:高效程序員?鏈接:https://mp.weixin.qq.com/s/z2ysvalLedD3YzRrptq2nw大家好,應(yīng)粉絲要求,我們今天帶來(lái)了C++的基礎(chǔ)知識(shí)大匯總,當(dāng)然這是精簡(jiǎn)版的,但是篇幅也不少,應(yīng)該說(shuō)該有的也都有了,建議大家收藏慢慢學(xué)習(xí),同時(shí)希望對(duì)大家的C++學(xué)習(xí)有...
資源簡(jiǎn)介:前面我們重點(diǎn)分析了如何通過(guò) fork, vfork, pthread_create 去創(chuàng)建一個(gè)進(jìn)程或者線程,以及后面說(shuō)了它們共同調(diào)用 do_fork 的實(shí)現(xiàn)。現(xiàn)在已經(jīng)知道一個(gè)進(jìn)程是如何創(chuàng)建的,但是進(jìn)程何時(shí)被執(zhí)行,需要調(diào)度器來(lái)選擇。所以這一節(jié)我們介紹下進(jìn)程調(diào)度和進(jìn)程切換的詳情。進(jìn)程的分類在 CPU 的角度看進(jìn)程行為的話,可以分為兩類:CPU 消耗...
資源簡(jiǎn)介:我們說(shuō)的 Modern C++,一般指的是 C++11 及以后的標(biāo)準(zhǔn),從 C++ 11 開(kāi)始,Modern C++ 引入了大量的實(shí)用的特性,主要是兩大方面,學(xué)習(xí)的時(shí)候也可以從這兩大方面學(xué)習(xí):增強(qiáng)或者改善的語(yǔ)法特性;新增的或者改善的 STL 庫(kù)。我們來(lái)看幾個(gè)具體的案例:案例 1:統(tǒng)一的類成員初始化語(yǔ)法與 std::initializer_list<T>:在 C++98/03 中...
資源簡(jiǎn)介:大家好,我是飛哥!經(jīng)常在后臺(tái)收到讀者的交流,Linux 源碼那么龐大,飛哥你是如何讀的呢?由于問(wèn)這個(gè)問(wèn)題的太多,我想有必要專門(mén)寫(xiě)一篇文章聊一聊。首先,我先說(shuō)一點(diǎn),其實(shí)我本人不是搞內(nèi)核相關(guān)工作的。我和大多數(shù)同學(xué)都一樣,從事的也是應(yīng)用層上的開(kāi)發(fā),負(fù)責(zé)的是后端模塊。那我為什么要研究源碼這個(gè)之前我說(shuō)過(guò),是因?yàn)槲以?..
資源簡(jiǎn)介:在《一文讀懂 | 進(jìn)程怎么綁定 CPU》這篇文章中介紹過(guò),在 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ù)不一樣的問(wèn)題,這就是所謂的?負(fù)載不均衡?問(wèn)題,如下圖所示:(圖1)最極端的情況是,一個(gè) CPU 的可運(yùn)行進(jìn)程隊(duì)列擁有...
資源簡(jiǎn)介:前言TCP協(xié)議是大廠面試必問(wèn)的知識(shí)點(diǎn)。整理了15道非常經(jīng)典的TCP面試題,希望大家都找到理想的offer呀公眾號(hào):撿田螺的小男孩1. ?講下TCP三次握手流程開(kāi)始客戶端和服務(wù)器都處于CLOSED狀態(tài),然后服務(wù)端開(kāi)始監(jiān)聽(tīng)某個(gè)端口,進(jìn)入LISTEN狀態(tài)第一次握手(SYN=1, seq=x),發(fā)送完畢后,客戶端進(jìn)入 SYN_SEND 狀態(tài)第二次握手(SYN=1, ACK...
資源簡(jiǎn)介:平時(shí)聊天時(shí)總會(huì)有朋友叫貓哥貓哥的,開(kāi)始時(shí)我會(huì)糾正一下,后來(lái)叫貓哥的實(shí)在太多了,我也實(shí)在糾正不過(guò)來(lái),也是懶得糾正了。然而然而然而,我公眾號(hào)后臺(tái)其實(shí)是可以回復(fù)程序喵關(guān)鍵字領(lǐng)取資料,可是偏偏有人如圖這樣:總能在公眾號(hào)后臺(tái)看到有人回復(fù)“程序貓”,錯(cuò)誤的關(guān)鍵詞導(dǎo)致這些人看不到原本設(shè)置的關(guān)鍵詞“程序喵”對(duì)應(yīng)的回...
資源簡(jiǎn)介:編譯:伯樂(lè)在線 -?鄭蕓,英文:Henrik Warne來(lái)源:CPP開(kāi)發(fā)者Bug 是絕佳的學(xué)習(xí)機(jī)會(huì)。所以我們?cè)鯓颖M可能多地從修復(fù)的 bug 中吸取經(jīng)驗(yàn)?我至今已經(jīng)用了 13 年的一個(gè)方法是,寫(xiě)下這個(gè) bug 的簡(jiǎn)單描述、修復(fù)方法以及吸取的經(jīng)驗(yàn)。遙想 2002 年,我偶然發(fā)現(xiàn)一篇描述這個(gè)方法的博客(很不幸,我沒(méi)再找到)。我從那時(shí)起就使用這個(gè)...
資源簡(jiǎn)介:未來(lái)的軟件,從誕生起,就是生在云上,長(zhǎng)在云上的。這個(gè)說(shuō)法絕對(duì)不是沒(méi)有根據(jù)的,看看現(xiàn)在的互聯(lián)網(wǎng)大廠在做的事情,你就知道了:?阿里宣布成立云原生技術(shù)委員會(huì),并投入數(shù)十億大力推動(dòng)阿里經(jīng)濟(jì)體全面云原生化,對(duì)外賦能數(shù)百萬(wàn)家企業(yè)進(jìn)行云原生改造,提升 30% 研發(fā)效率的同時(shí)降低30% IT 成本,幫助客戶邁入數(shù)字原生時(shí)代。華...
資源簡(jiǎn)介:hi,大家好,歡迎來(lái)到極客重生的世界,今天給大家分享的是Linux 網(wǎng)絡(luò)新技術(shù),當(dāng)前正流行網(wǎng)絡(luò)技是什么?那就是eBPF和XDP技術(shù),Cilium+eBPF超級(jí)火熱,Google GCP也剛剛?cè)孓D(zhuǎn)過(guò)來(lái)。新技術(shù)出現(xiàn)的歷史原因廉頗老矣,尚能飯否iptables/netfilteriptables/netfilter 是上個(gè)時(shí)代Linux網(wǎng)絡(luò)提供的優(yōu)秀的防火墻技術(shù),擴(kuò)展性強(qiáng),能夠滿...
資源簡(jiǎn)介:導(dǎo)讀:如果你也讀CS專業(yè),如果你也不知道怎么回答“學(xué)計(jì)算機(jī)不就是學(xué)修電腦”這個(gè)CS系的宿命之問(wèn),推薦一定讀一讀《深入理解計(jì)算機(jī)系統(tǒng)》。《深入理解計(jì)算機(jī)系統(tǒng)》是一本什么樣的書(shū)呢??jī)蓚€(gè)字,經(jīng)典。原因有二,第一,這書(shū)無(wú)數(shù)業(yè)界大牛推薦,第二,這書(shū)和你印象中的經(jīng)典一樣,給人的第一感覺(jué)就是厚實(shí)。不過(guò),厚實(shí)也很容易再...
資源簡(jiǎn)介:作者 | Kostya Shishkov? ? ? ?譯者 | 彎月? ? ? 責(zé)編 | 歐陽(yáng)姝黎出品 | CSDN(ID:CSDNnews)C和C++孰優(yōu)孰劣之爭(zhēng)貌似永遠(yuǎn)不會(huì)有結(jié)果,我們也就看看熱鬧吧:雖然 C 語(yǔ)言并不是我所學(xué)的第一門(mén)語(yǔ)言,也不是我的最后一門(mén)語(yǔ)言,但是我仍然非常喜歡 C,當(dāng)需要寫(xiě)程序時(shí),我的第一選擇還是 C。同時(shí),我也會(huì)關(guān)注現(xiàn)代編程語(yǔ)言...
資源簡(jiǎn)介:來(lái)源 | https://blog.csdn.net/Solstice/article/details/8547547聲明 |?本文為CSDN博主[陳碩]原創(chuàng)文章,如有侵權(quán)請(qǐng)聯(lián)系刪除最近看見(jiàn)交流群里小伙伴在討論這個(gè)問(wèn)題,自己也很感興趣,上網(wǎng)找到了陳碩大佬的這篇文章,分享給大家!以下是正文:我在《Linux 多線程服務(wù)端編程:使用 muduo C++ 網(wǎng)絡(luò)庫(kù)》第 1.9 節(jié)“再論 shared...
資源簡(jiǎn)介:在軟件中隨處可見(jiàn)命名:要給變量、函數(shù)、參數(shù)、類和封包命名,還要給源代碼及源代碼所在目錄命名,甚至還有jar文件、war文件和ear文件命名。但是,看似簡(jiǎn)單的命名,也是讓不少程序員頭疼的問(wèn)題。有一些小伙伴,在進(jìn)行變量命名的時(shí)候,對(duì)于自己熟悉的英文,可能還會(huì)用英文命名一下,如果需要命名的部分不會(huì)用英文表達(dá),或許...
資源簡(jiǎn)介:封面是我最近在追的動(dòng)漫《眷思量》,推薦給大家!本文作者:陳碩來(lái)源:https://www.zhihu.com/question/22608820/answer/21968467看完后不再迷茫!在校學(xué)生的編程語(yǔ)言和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)還不錯(cuò),我認(rèn)為應(yīng)該在《操作系統(tǒng)》和《計(jì)算機(jī)體系結(jié)構(gòu)》這兩門(mén)課上下功夫,然后才去讀編程方面的 APUE、UNP 等書(shū)。下面簡(jiǎn)單談?wù)勎覍?duì)學(xué)習(xí)這...
資源簡(jiǎn)介:導(dǎo)讀:隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,視頻化浪潮借著5G的東風(fēng)撲面而來(lái)。然而眾多用戶在進(jìn)行視頻化創(chuàng)作的過(guò)程中,被傳統(tǒng)視頻編輯器復(fù)雜的功能和陡峭的學(xué)習(xí)曲線勸退。為此,百度百家號(hào)業(yè)務(wù)研發(fā)團(tuán)隊(duì)結(jié)合用戶的實(shí)際創(chuàng)作需求,開(kāi)發(fā)出一款簡(jiǎn)單易用的在線視頻編輯和發(fā)布工具——百家號(hào)在線視頻編輯器。本文將細(xì)致地介紹這一編輯器的技術(shù)原...
資源簡(jiǎn)介:socket fd 長(zhǎng)什么樣子?什么是 socket fd ?粗糙的來(lái)講,就是網(wǎng)絡(luò) fd,比如我們最常見(jiàn)的 C/S 客戶端服務(wù)端的編程模式,就是網(wǎng)絡(luò)通信的一種方式。撇開(kāi)底層和協(xié)議細(xì)節(jié),網(wǎng)絡(luò)通信和文件讀寫(xiě)從接口上有本質(zhì)區(qū)別嗎?其實(shí)沒(méi)啥區(qū)別,不就是讀過(guò)來(lái)和寫(xiě)過(guò)去嘛,簡(jiǎn)稱 IO 。我們先看一下 socket fd 是什么樣子的?隨便找了個(gè)進(jìn)程root@u...
資源簡(jiǎn)介:來(lái)源:IBN,作者:Cameron Lairdhttps://www.ibm.com/developerworks/cn/aix/library/au-memorytechniques.html本文將帶您了解一些良好的和內(nèi)存相關(guān)的編碼實(shí)踐,以將內(nèi)存錯(cuò)誤保持在控制范圍內(nèi)。內(nèi)存錯(cuò)誤是 C 和 C++ 編程的禍根:它們很普遍,認(rèn)識(shí)其嚴(yán)重性已有二十多年,但始終沒(méi)有徹底解決,它們可能嚴(yán)重影響應(yīng)用程序,并且...
資源簡(jiǎn)介:導(dǎo)讀:程序core是指應(yīng)用程序無(wú)法保持正常running狀態(tài)而發(fā)生的崩潰行為。程序core時(shí)會(huì)生成相關(guān)的core-dump文件,是程序崩潰時(shí)程序狀態(tài)的數(shù)據(jù)備份。core-dump文件中包含內(nèi)存、處理器、寄存器、程序計(jì)數(shù)器、棧指針等狀態(tài)信息。本文將介紹一些利用core-dump文件定位程序core原因的方法和技巧。全文7023字,預(yù)計(jì)閱讀時(shí)間 13分鐘...
資源簡(jiǎn)介:C++開(kāi)發(fā)究竟需不需要學(xué)點(diǎn)Rust?個(gè)人認(rèn)為:需要!早就是優(yōu)勢(shì)!多年以前,后端還是Java和C++的天下呢!那時(shí)好多人都說(shuō)Go的生態(tài)不好,它作為后端主要語(yǔ)言還有很長(zhǎng)一段距離。然而,看看現(xiàn)在,多數(shù)做后端開(kāi)發(fā)的人都轉(zhuǎn)到Go去了。貌似現(xiàn)在的Rust和當(dāng)年的Go有點(diǎn)類似的味道?對(duì)于 Rust 這個(gè)新語(yǔ)言,很多人可能都聽(tīng)過(guò),但是沒(méi)用過(guò)。實(shí)...
資源簡(jiǎn)介:封面自己畫(huà)的,應(yīng)該還算比較可愛(ài)的吧,復(fù)古類型的可愛(ài)啦。為什么是森林呢,嗯~~周末看了書(shū)《挪威的森林》,其中有句話是:如果你掉進(jìn)了黑暗里,你能做的,不過(guò)是靜心等待,直到你的雙眼適應(yīng)黑暗。此篇文章關(guān)于 C/C++/Linux后端開(kāi)發(fā)的全路線。前言于我而言,最開(kāi)始學(xué)習(xí)就是 C++,除了計(jì)算機(jī)專業(yè),其他專業(yè)可能學(xué)習(xí)的第一門(mén)編...
資源簡(jiǎn)介:卷友們好,我是阿秀。阿秀在去年找工作時(shí),大概面試過(guò)四十余場(chǎng),不敢說(shuō)自己的面試經(jīng)驗(yàn)很豐富,但至少也不差的。所以專門(mén)花了點(diǎn)時(shí)間把自己的面試經(jīng)驗(yàn)總結(jié)了一下,分享給大家!可以說(shuō),三個(gè)多月的時(shí)間里,40 余場(chǎng)面試,都濃縮在這 6262個(gè)字里了。在此之前,先分享一下自己昨天的小確幸,可以說(shuō)是20多年以來(lái)收到的最好的兒童節(jié)...
資源簡(jiǎn)介:轉(zhuǎn)自:Guancheng (G.C.)在并行程序中,鎖的使用會(huì)主要會(huì)引發(fā)兩類難題:一類是諸如死鎖、活鎖等引起的多線程Bug;另一類是由鎖競(jìng)爭(zhēng)引起的性能瓶頸。本文將介紹并行編程中因?yàn)殒i引發(fā)的這兩類難題及其解決方案。1、用鎖來(lái)防止數(shù)據(jù)競(jìng)跑在進(jìn)行并行編程時(shí),我們常常需要使用鎖來(lái)保護(hù)共享變量,以防止多個(gè)線程同時(shí)對(duì)該變量進(jìn)行更新...
資源簡(jiǎn)介:CVE-2021-22555:一個(gè)影響2006年(Linux kernel v2.6.19-rc1 發(fā)布)至今(Linux kernel v5.12-rc8)的所有Linux內(nèi)核版本的漏洞,可導(dǎo)致本地提權(quán)與容器逃逸;該漏洞是個(gè)內(nèi)核級(jí)漏洞,跟Linux的發(fā)行版本沒(méi)有關(guān)系,也就是說(shuō)只要Linux 內(nèi)核版本在v2.6.19-rc1 ~v5.12-rc8 之間的內(nèi)核,都存在被黑客利用該漏洞攻擊的可能。該漏洞...
資源簡(jiǎn)介:C++對(duì)比其他語(yǔ)言到底難在哪里?有人對(duì)C++異常推崇,除了性能優(yōu)勢(shì),還有什么優(yōu)點(diǎn),怎么學(xué)好C++?01C++的能力上限非常高,可以說(shuō)在軟件領(lǐng)域沒(méi)有C++做不好和做不到的事情,只是開(kāi)發(fā)者水平和成本問(wèn)題,而C++之后出現(xiàn)的語(yǔ)言都有些無(wú)論如何都做不好或根本做不到的事情。C++雖然能力上限高,但是達(dá)到這個(gè)上限對(duì)開(kāi)發(fā)者的要求也很高...