原创 【Linux】線程安全(二)

一.POSIX信號量 實現進程/線程間同步與互斥 本質:計數器+等待隊列+等待+喚醒接口 與條件變量對比:多了一個資源計數器,對臨界資源的計數,來進行條件判斷,是否可以對資源進行訪問。若不能訪問當前執行流,則阻塞當前執行流。 依

原创 【C++】模板之模板分離情況

這篇博客講述模板分離報錯原因與解決方法! 一.模板分離: 即模板的聲明寫於頭文件a.h 模板的定義寫於源文件a.cpp 在main.cpp中使用模板的情況。 // a.h template<class T> T Add(con

原创 【Linux】查看進程以及建立子進程fork()函數

一.系統文件查看進程 進程的信息可以通過 /proc 系統文件夾查看 如:要獲取PID爲1的進程信息,你需要查看 /proc/1 這個文件夾。 二.通過命令查看進程 1.ps命令 顯示此刻的進程 BSD選項 ps a #輸

原创 【C++】I/O流

一.I/O流的概念 “ 流 ” :即是流動的意思,是物質從一處向另一處流動的過程,是對一種有序連續且具有方向性的數據( 其單位 可以是bit,byte,packet )的抽象描述。 C++流:是指信息從外部輸入設備(如鍵盤)向計算

原创 【Linux】常見問題

1.git clone 失敗 解決方法: yum update -y nss curl libcurl 2.xshell下 vim 中小鍵盤輸入異常情況處理 使用xshell, 在vim編輯時,NumLock開啓時發現小鍵盤上的

原创 【C++】模板之模板特化

一.模板特化概念與分類 1.模板特化概念 使用模板可以實現一些與類型無關的代碼,但對於一些特殊類型的可能會得到一些錯誤的結 果。就需要對模板進行特化。 即:在原模板類的基礎上,針對特殊類型所進行特殊化的實現方式。 2.模板特化分類

原创 【數據結構】哈希表及其模擬實現

一.哈希及其概念 通過一定的哈希函數,確定元素的存儲位置。搜索效率較高,爲O(1) 負載因子:存儲元素個數/總表格長度 若大於一定值需要擴容 二.常見的哈希函數 直接定址法:hashfunc(date)=A*date+B;【

原创 【網絡原理】運輸層

一、運輸層協議概述 1、進程之間的通信 1、運輸層的兩個重要功能: ⑴、運輸層第一個重要功能:通過複用和分用技術爲應用進程之間提供端到端的邏輯通信。 複用:指的是發送方不同的進程都可以使用同一個運輸層協議傳送數據。 分用:指接收

原创 【網絡原理】應用層

一、域名系統DNS 1、域名系統DNS概述 1、DNS:互聯網使用的命名系統,用來把機器名轉換成IP地址。 2、域名到IP地址解析過程要點如下: 當某一應用程序需要把主機名解析爲IP地址時,該應用程序就調用解析程序,把待解析的域

原创 【網絡原理】網絡層

一、網絡層提供的兩種服務 1、網絡層的任務 以分組爲單位將數據信息從源點傳輸到目的點。通過路由選擇算法,爲分組選擇合適的路徑。 2、問題提出:網絡層應向傳輸層提供怎樣的服務?面向連接還是無連接? 虛電路交換:建立連接、通信、拆除連

原创 【網絡原理】數據鏈路層

一、數據鏈路層的基礎知識: 1、數據鏈路層主要目的 將原始的、有差錯的物理線路變成無差錯的數據鏈路。 2、數據鏈路層主要功能 1.鏈路管理:數據鏈路的建立、維護、釋放; 2.幀同步:接收方應從收到的比特流中正確地判斷出一幀的

原创 【網絡原理】物理層

一、物理層的基本概念 1.物理層主要目的:在傳輸媒體上透明傳輸比特流; 2.物理層主要任務:確定與傳輸媒體的接口有關的一些特徵: 1.機械特徵:指明接口所用接線器的形狀、尺寸、引腳數和排列等等; 2.電氣特徵:指明接口電纜上各條

原创 【網絡原理】網絡概述

1.1、互聯網概述 1.1.1、互聯網概述→Internet 1、網絡:由若干結點和連接這些結點的鏈路組成; 2、結點:可以是計算機、集線器、交換機、路由器等; 3:網絡與互聯網之間的關係→網絡計算機連在一起;互聯網將許多網絡連在

原创 【數據結構】二叉樹(個人補習向)

一.樹的概念及其相關 1.概念及特點 樹是一種非線性的數據結構,它是由n(n>=0)個有限結點組成一個具有層次關係的集合。 特點:每個結點有零個或多個子結點; 沒有父結點的結點稱爲根結點; 每一個非根結點有且只有一個父結點;

原创 基於LZ77壓縮原理實現壓縮程序

一.LZ77原理 LZ77是基於字節的通用壓縮算法,它的原理就是將源文件中的重複字節(即在前文中出現的重複字節)使用 (距離,長度)的二元組進行替換。 例: mnoabczxyuvwabc123456abczxydefgh mno