原创 線程與多線程(同步、互斥)

      什麼是線程:線程是進程中的一條執行流,linux下線程是以進程的PCB模擬的,linux下的線程就是輕量級進程,因此linux下的線程是CPU調度的基本單位(線程是實際上處理事件的)。linux下的進程是線程組,進程id==線

原创 vim實用、最方便配置

在網上看了很多種方法,存在着很多的問題,其中不乏GitHub中的大佬做出很多的vim配置,但是本人在vim多數寫的是C/C++代碼,所以下面就來簡單的總結一下vim的配置: 包括了vim的代碼補全、關鍵字高亮、簡易的類似vs下的F5運行

原创 初識右值引用、移動語句(std::move)、完美轉發(std::forward)

左值:可以取地址的、有名字的就是左值 右值分爲純右值(C++98中提出)和將亡值(C++11提出) 純右值:用於識別臨時變量和一些不跟對象關聯的值。比如:常量、一些運算表達式(1+3)等,不能取地址的值 將亡值:在確保其他變量不再被使用、

原创 VS實現文件的快速搜索

在VS2013下模擬實現了類似Everything的文件快速搜索功能,支持模糊匹配,高亮顯示搜索部分。 1、首先在linux下有find命令,找一個文件是非常快的。 2、在windows下,查找是比較慢的,可以說是很慢的了,所以就想自己實

原创 TCP----面向連接、可靠性、效率的實現

之前我們看了TCP的報頭內容,那麼TCP的到底是怎樣實現的呢? 首先,爲了保證TCP的可靠性,都表現在以下幾個方面: 1.面向連接       首先,TCP是面向連接的,那麼什麼是面向連接呢?就是在通信之前讓雙方感知到對方的存在並讓發

原创 多態(實現)--虛函數

多態是一種事物的多種變現形態,不同的對象去完成一件事時會產生不一樣的狀態。                                        實現靜態多態的方法之一函數重載指的是在同一個作用域內兩個函數的名字相同,但是參數列表

原创 多路轉接——select、poll、epoll

首先要明確一點那就是IO執行的兩個階段 :    1.等待數據準備好      2.從內核中進行數據拷貝 在實現的時候分爲同步IO:在調用的沒有得到結果前,該調用不返回,調用者主動等待這個調用的結果     異步IO:調用發出後,直接返回

原创 缺省參數、函數重載

缺省參數: 用法:缺省參數是聲明或定義函數時爲函數的參數指定一些默認值。在調用時,若沒有給實參,就用默認值,若給定實參,就用實參的值。 缺省參數又分爲全缺省參數和半缺省參數: 當聲明和定義分離時,只能在聲明中出現缺省參數。 當聲明和定

原创 MySQL中索引原理

首先要說的是數據庫的底層用的是B+樹,那麼什麼是B+樹?B+樹是可以有多個子節點的樹,每一層的子節點都會用鏈表將其連接起來 首先就是二叉搜索樹,左邊比根節點小,右邊都比根節點大的,中序遍歷會得到一個升序的序列。平均查找時間複雜度是O

原创 關於fork的問題(詳解)

首先看一段代碼: #include <stdio.h> #include <unistd.h> #include <fcntl.h> int main(void) { int i; for(i=0; i<2; i

原创 繼承/虛擬繼承/虛表

繼承的分類: 1.單繼承                創建一個Student的對象,看一下他的內存分佈是怎樣的:       2.多繼承 3.多重繼承 4.菱形繼承   虛擬繼承 在虛擬繼承中,我們可以看到,子類成員和基類成員的

原创 C++11初始thread庫

在C++中,支持了多線程,下面就來學習一下C++中的線程庫thread: 先來看下面的代碼: #include <thread> #include <atomic> #include <mutex> using namespace st

原创 TCP理論基礎總結

在學習網絡中,在傳輸層有TCP/UDP兩個協議,而TCP是我們需要了解的重點,相關知識也特別的多,下面就來總結一下TCP的各種知識點: 在TCP/IP分層模型中,最上面是引用層---HTTP(數據段)、下面是傳輸層---TCP/UDP(數

原创 C++11之emplace_back

      在之前的學習中,瞭解到在STL中,進行插入元素的時候,有insert和push兩種選擇方式,而在有了右值引用和移動語義的時候,就提出了更高效的插入方法:emplace_back,下面來介紹一下C++11新特性中的emplace

原创 IO-同步、異步、多路轉接

在linux系統中對於一個IO事件來說,實際都分爲了兩步: 等待數據準備好 將數據從內核中拷貝到進程中 IO的兩個步驟是它的基礎,以下討論各種IO模型的區別就是上面兩步的不同,以下來逐個解釋: 同步IO 1.阻塞