原创 07.無鎖數據結構

看了很多博客,大多講的很高深,看起來很費勁,能力有限只能簡單總結一下。 什麼是無鎖數據結構: 先說一下鎖是幹嘛的,在多線程環境下,由於很多操作不是原子操作,導致多個線程同時做了一個工作,爲了防止這種情況的發生,我們通過對執行代碼前上鎖,讓

原创 08.泛型算法、仿函數(函數對象)、bind1st 與 bind2nd

置頂推薦轉載引用的博文(講解的很詳細):https://www.cnblogs.com/ne-liqian/p/7889631.html        泛型算法: 泛型算法是STL庫裏面定義的一些算法,這些算法可以用一個接口操作各種

原创 05.單例模式

單例模式 一個類只能被實例化一次,產生一個對象。 在類中,要構造一個實例,就需要通過構造函數,所以爲了防止在外部調用類的構造函數而構造實例,需要將構造函數的訪問權限標記爲protected或private; 並且需要提供給全局訪問點,就需

原创 04.向量容器+迭代器+空間配置器

容器:順序容器/關聯容器 順序容器: 向量容器vector、雙端隊列 deque、雙向鏈表 list。 元素在容器中的位置同元素的值無關,即容器不是排序的。 vector 是可變長的動態數組。#include <vector>。查找速度快

原创 06.Nginx內存池

 先了解一下Nginx: Nginx是一個高性能的HTTP反向代理服務器,接收瀏覽器請求。其特點是佔有內存少,併發能力強,穩定性高。 nginx有什麼功能? 接收http服務,正向反向代理(負載均衡)。 正向代理代理客戶端,反向代理代理服

原创 03.運算符重載

運算符重載的目的:讓對象的運算表現的和內置類型的運算一樣。 運算符重載函數,返回值一般不會是void,例如:連續的=就無法用void實現,一般用類類型的引用,可以保證連續運算。 class CComplex 複數類 { public

原创 01.從C到C++:淺拷貝,優化規則,內存分配

new int[20]和new int[20]() 有()初始化爲該類型的默認值       沒有(爲隨機值)     開闢單個元素可以在()內隨意初始化,但開闢數組是()內不能寫入數字 類的成員方法在類體內定義和在類外定義: 1.類外定

原创 Linux進程間通信——04共享內存

共享內存: 共享內存時最快的一種IPC(進程間通信)。顧名思義就是兩個不相關的進程訪問同一個邏輯內存。 爲什麼快:管道存在數據的拷貝。通過buffer。而內存共享,直接放入內存中。 缺陷:共享內存並沒有提供同步機制。也就是說A,B可能同

原创 Linux進程間通信——01管道

進程間通信: 對於每個進程來說,都有一份屬於它自己的內存資源,並且獨佔這份內存資源。而進程間通信的目的就是讓不同的進程間能看到一份公共的資源。所有交換的數據必須通過內核來傳遞,在內核中開闢一塊緩衝區,通過這塊緩衝區來實現數據的傳遞,內核提

原创 從C到C++

頭文件:C++的標準輸入輸出頭文件#include <iostream>。一般還配有using namespace std;表示使用std名命空間。 在C++中,聲明一個函數時,可以爲函數的參數指定默認值。當調用該函數時,如果沒有參數,將

原创 類與對象

struct與class: 在C語言中struct定義結構體,在C++中struct與class都是定義類,區別在struct默認public,class默認private。還有一種說法:沒有成員函數的 struct 還是稱作“結構”,結

原创 Linux進程間通信——03消息隊列

消息隊列: 消息:數據+類型  給數據一種特殊的標誌 隊列:先進先出,但其類似優先級隊列。 消息隊列提供了一個從一個進程向另外一個進程發送一塊數據的方法。每個數據塊都有一個特定的類型,接收方可以根 據類型來有選擇地選擇接收數據,而不一定像