紅黑樹: 紅黑樹是一棵二叉查找樹(BST),BST的查找效率為O(lgN), 但對于插入,某些情況下,偏向性嚴(yán)重的情況下會退化成類似于具有N個(gè)節(jié)點(diǎn)的線性鏈表,此時(shí)時(shí)間的復(fù)雜度...
紅黑樹: 紅黑樹是一棵二叉查找樹(BST),BST的查找效率為O(lgN), 但對于插入,某些情況下,偏向性嚴(yán)重的情況下會退化成類似于具有N個(gè)節(jié)點(diǎn)的線性鏈表,此時(shí)時(shí)間的復(fù)雜度...
http請求 request line + header + body(header分為普通報(bào)頭,請求報(bào)頭和實(shí)體報(bào)頭) header與body之間有一空行(CRLF) req...
Connector類 Connector只負(fù)責(zé)建立socket連接,不負(fù)責(zé)創(chuàng)建TcpConnection對象,它的newConnectionCallback回調(diào)的參數(shù)是soc...
TcpConnection發(fā)送數(shù)據(jù) 之前我們的Channel僅僅用到了ReadCallback,而并沒有啟用WriteCallback,在本節(jié)中會設(shè)置為在需要時(shí)關(guān)注可寫事件,...
EventLoopThread類 一個(gè)程序可以有不止一個(gè)IO線程,IO線程也不一定是主線程,我們可以在任何一個(gè)線程創(chuàng)建并運(yùn)行Eventloop.且任何一個(gè)線程只要創(chuàng)建并運(yùn)行了...
本地電腦端1 .本地電腦生成SSHkey,通過命令生成: 2.上述命令會在=根目錄下生成/.ssh文件夾: 3.進(jìn)入該文件夾,打開id_rsa.pub文件,復(fù)制里面的內(nèi)容;然...
EventLoop中時(shí)序深究: 過程:1.在程序中我們一般會先構(gòu)造一個(gè)EventLoop對象(muduo::EventLoop loop),EventLoop構(gòu)造函數(shù)初始化列...
多線程與并發(fā)服務(wù)器: (1)循環(huán)式(iterative)服務(wù)器:每處理一次請求,就關(guān)閉一次,使用的是TCP短連接,只使用單線程模式,沒法充分發(fā)揮多核CPU的優(yōu)勢.(2)驚群現(xiàn)...
(1)父子進(jìn)程之間的繼承: fork()會產(chǎn)生一個(gè)和父進(jìn)程完全相同的子進(jìn)程,但子進(jìn)程在此后會exec系統(tǒng)調(diào)用,出于效率考慮,linux中引入了“寫時(shí)拷貝”copy on wr...
大型網(wǎng)站架構(gòu)演變過程 1.web動靜資源分離:動態(tài)請求:jsp,php等;動態(tài)請求應(yīng)用服務(wù)器處理如:Tomacat靜態(tài)請求: html,js,css等,靜態(tài)請求由http服務(wù)...
本項(xiàng)目想要實(shí)現(xiàn)的線程池的功能:(1) 讓不同的線程完成不同的任務(wù);把任務(wù)派生成一個(gè)基類,每個(gè)任務(wù)派生出一個(gè)任務(wù)參數(shù).(2) 把多個(gè)線程管理起來,通過創(chuàng)建一個(gè)管理者線程類.該線...
線程池的實(shí)現(xiàn)原理基本上就是生產(chǎn)者與消費(fèi)者模型的擴(kuò)展,即剛開始開出一定數(shù)量的線程,以基本生產(chǎn)者消費(fèi)者模型為基本原理,不斷使用這些線程從"任務(wù)隊(duì)列"中取出任務(wù)進(jìn)行處理,本線程池中...
多線程之間的通信方式 三種專門用于線程同步的機(jī)制:POSIX信號量,互斥量和條件變量. POSIX信號量 在Linux上信號量API有兩組,一組是System V IPC信號...
線程是程序中完成一個(gè)獨(dú)立任務(wù)的完整執(zhí)行序列,即一個(gè)可以調(diào)度的實(shí)體;進(jìn)程是資源分配和調(diào)度的一個(gè)獨(dú)立單位,線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分配的基本單位. 一個(gè)進(jìn)程至少擁有一...
Linux 簡要基礎(chǔ)知識 用戶空間/內(nèi)核空間操作系統(tǒng)的核心是內(nèi)核,獨(dú)立于普通的應(yīng)用程序,可以訪問受保護(hù)的內(nèi)存空間,也有訪問底層硬件設(shè)備的所有權(quán)限。為了保證用戶進(jìn)程不能直接操作...
1.Linux網(wǎng)絡(luò)編程基礎(chǔ)API: 字節(jié)序分為大端字節(jié)序和小端字節(jié)序.小端字節(jié)序是指低位地址存放在內(nèi)存的低位地址處,高位字節(jié)存儲在內(nèi)存的高地址處.我們的x86主機(jī)一般采用小端...
Makefile文件簡介 Makefile文件定義了一系列的規(guī)則,來指定工程中的哪些文件需要編譯,哪些文件需要先編譯后編譯;其次Makefile文件可以像shell腳本一樣,...
智能指針的基本思想: 將堆對象的生存周期用棧對象(智能指針)來管理.當(dāng)new一個(gè)堆對象時(shí),立刻用智能指針來接管,具體的做法是在構(gòu)造函數(shù)中進(jìn)行初始化(用一個(gè)指針指向堆對象),在...
多態(tài)是指:程序運(yùn)行時(shí),調(diào)用方法的行為應(yīng)取決于調(diào)用該方法的對象,一般情況下,我們一般要求父類的指針可以根據(jù)具體所指的對象類型,來執(zhí)行不同的函數(shù).知識點(diǎn): C++支持兩種多態(tài)性:...
static,const和static const 以及它們的初始化 const 定義的常量在超出其作用域之后,其空間便會被釋放收回.C++11之后const成員變量可以在類...