原创 C++ STL : 模擬實現STL中的vector類

文章目錄vectorvector的介紹vector的優缺點實現時需要注意的細節問題1. Capacity增長問題2. memset等函數來帶的按字節拷貝問題3. 深淺拷貝問題4. 迭代器失效問題實現的接口代碼實現 vector

原创 手把手教你用C++實現一個簡易的線程池

文章目錄線程池的概念什麼是線程池線程池的優點線程池的應用場景線程池的實現實現思路代碼實現 線程池的概念 什麼是線程池 顧名思義,線程池就是一個有很多空閒線程的池子(線程的數量受到限制),需要用到多執行流進行任務處理時,就從池子中喚

原创 操作系統:生產者消費者模型的兩種實現(C++)

文章目錄生產者消費者模型什麼是生產者消費者模型生產者消費者模型的321原則生產者消費者模型的優點生產者消費者模型的實現方法基於循環隊列,信號量實現基於阻塞隊列,互斥鎖、條件變量實現 生產者消費者模型 什麼是生產者消費者模型 生產

原创 C++ STL : 模擬實現STL中的string類

string的文檔介紹 string是表示字符序列的類 標準的字符串類提供了對此類對象的支持,其接口類似於標準字符容器的接口,但添加了專門用於操作 單字節字符字符串的設計特性。 string類是使用char(即作爲它的字符類型

原创 Linux 多線程(二)線程安全:線程安全、互斥、死鎖、同步

線程安全 互斥 死鎖 同步 線程安全 所謂線程安全,其實就是當多個線程對臨界資源進行爭搶訪問的時,不會造成數據二義或者邏輯混亂的情況(通常情況下對全局變量和靜態變量進行操作時在會出現) 常見的線程安全的情況: 每個線程

原创 Linux 多線程(一)線程概念:線程概念、線程與進程、線程間的獨有與共享、多線程與多進程

線程概念 線程與進程 線程間的獨有與共享 多線程與多進程 線程概念 什麼是線程 線程是進程中的一條執行流,執行程序中的某部分代碼。linux下沒有具體實現的線程,只有庫函數用pcb來實現的線程,所以可以認爲,每個pcb就

原创 C++ 泛型編程(一):模板基礎:函數模板,類模板,模板原理,模板匹配規則

類模板 函數模板 泛型編程 泛型編程,泛型即是指具有在多種數據類型上皆可操作的含義,其實就是能夠幫助開發者編寫完全一般化並可重複使用的算法,同樣的工作不需要做多次,同樣的算法針對不同的類型也不應該寫多次,所以需要通

原创 C++ 動態內存管理:c/c++的動態內存管理,new/delete,operator new/delete,placement-new, 內存泄漏

c/c++的動態內存管理 new/delete opeartor new/delete placement-new 內存泄漏 c/c++的動態內存管理 在開始之前首先要了解c和c++的內存分佈,我簡單的畫了一個圖

原创 C++ 如何一次在堆上申請4G的內存?如何設計一個類只能在堆或者棧上創建對象?

1.如何一次在堆上申請4G的內存? 因爲32位的環境下虛擬地址空間的大小隻有4g,而光內核空間就需要1g,所以不可能申請得到,只有在64位的環境下纔可以實現,只需要把執行環境改爲64x即可 #include <iostream>

原创 C++ 類和對象(三):構造函數補充、匿名對象、友元、內部類、類的static與const

構造函數補充 匿名對象 友元 內部類 類的static成員 類的const成員 構造函數補充 列表初始化 講列表初始化之前,要先討論一下構造函數裏面的語句到底是不是初始化 例子還是上次的日期類 class Date {

原创 手把手教你用C語言實現一個miniShell

Shell就是命令行的解釋器,因爲在Linux下,是沒有圖形界面的,我們需要通過命令行輸入我們的命令,然後Shell將命令解析後反饋給Linux內核,內核運算處理後再講結果通過Shell解析給用戶。 我們輸入的ls其實就是字符串

原创 C++ 類和對象(二):構造函數、析構函數、拷貝構造函數、運算符重載

構造函數 析構函數 拷貝構造函數 運算符重載 class Date { }; 可以看到,上面那個類沒有任何成員,是一個空類,但是它真的什麼都沒有嗎?其實一個類在我們不寫的情況下,都會生成6個默認的成員函數 分別是構造函

原创 C++ 類和對象(一):類的概念、類的訪問控制和封裝、類對象模型、this指針

類的概念 類的訪問控制和封裝 類的對象模型 this指針 類的概念 在C++中,類可以說是最重要的東西,因爲C++一開始的定位就是c with class,也正是因爲引入了類,才讓c++從c的面向過程思想轉變爲面向對象的

原创 Linux 進程信號:信號的概念、生命週期、產生流程、阻塞

信號的概念 信號的生命週期 信號的阻塞 信號的概念 信號 信號是一個軟中斷。操作系統通過信號通知某個進程發生了某件事件,然後中斷這個進程當前操作,讓它優先去處理這個事件。 我們在linux下常用的kill命令就是通過向進

原创 Linux 進程間通信:管道、共享內存、消息隊列、信號量

進程間通信 管道 共享內存 消息隊列 信號量 進程間通信 https://blog.csdn.net/qq_35423154/article/details/105294963 在之前的一篇博客中講過,因爲每個進程都通過