原创 共享內存

    共享內存區域是被多個進程共享的一部分物理內存。如果多個進程都把該內存區域映射到自己的虛擬地址空間,則這些進程就都可以直接訪問該共享內存區域,從而可以通過該區域進行通信。共享內存是進程間共享數據的一種最快的方法,一個進程向共享內存區域

原创 命名管道

命名管道基本概念:    匿名管道沒有名字,因此只有血緣關係的進程間纔可以通信,命名管道的提出就是爲了克服這個限制。命名管道是一個設備文件,因此,即使進程間無血緣關係,只要可以訪問該路徑,就能夠通過FIFO通信。FIFO總是按照先進先出的原

原创 生產者消費者

生產者把數據放入緩衝區,消費者從緩衝區中取數據。

原创 二叉搜索樹的增刪查改

二叉搜索樹的性質:    1.每個節點都有一個作爲搜索依據的關鍵碼(key),所有節點的關鍵碼都不一樣。    2.左子樹的關鍵碼都小於根節點的關鍵碼    3.右子樹的關鍵碼都大於根節點的關鍵碼    4.左右子樹都是二叉搜索樹#incl

原创 讀寫鎖

原创 紅黑樹

紅黑樹是一棵二叉搜索樹,它在每個節點上增加了一個存儲位來表示節點的顏色,可以是Red或Black。通過對任何一條從根到葉子簡單路徑上的顏色來約束,紅黑樹保證最長路徑不超過最短路徑的兩倍,因而近似於平衡。紅黑樹是滿足下面紅黑性質的二叉搜索樹每

原创 線程概念

線程是運行在一個進程的基本執行流。線程是進程調度的基本實體。線程強調共享,但也有自己的私有資源。爲什麼要有線程?1.進程雖然獨佔資源,但對進程間通信維護比較不好,切換成本較大。2.線程切換成本較小,線程運行在進程內部。創建線程:返回值:成功

原创 消息隊列

消息隊列基本概念:    消息隊列提供了一種從進程向另一個進程發送一個數據塊的方法。每個數據塊都被認爲是有一個類型,接收者進程接收的數據塊可以有不同的類型。我們可以通過發送消息來避免命名管道的同步和阻塞問題。消息隊列與管道的區別:    消

原创 http中的keep-alive

HTTP是一個請求<->響應模式的典型範例,即客戶端向服務器發送一個請求信息,服務器來響應這個信息。在老的HTTP版本中,每個請求都將被創建一個新的客戶端->服務器的連接,在這個連接上發送請求,然後接收請求。這樣的模式有一個很大的優點就是,

原创 TCP協議建立連接與釋放連接

TCP建立連接三次握手1. 客戶端發出段1,SYN位表連接請求。序號是1000,這個序號在絡通訊中作臨時的地 址,每發個數據字節,這個序號要加1,這樣在接收端可以根據序號排出數據包的正確順 序,也可以發現丟包的情況,另外,規定SYN位和FI

原创 TCP協議建立連接與釋放連接

TCP建立連接三次握手1. 客戶端發出段1,SYN位表連接請求。序號是1000,這個序號在絡通訊中作臨時的地 址,每發個數據字節,這個序號要加1,這樣在接收端可以根據序號排出數據包的正確順 序,也可以發現丟包的情況,另外,規定SYN位和FI

原创 共享內存

    共享內存區域是被多個進程共享的一部分物理內存。如果多個進程都把該內存區域映射到自己的虛擬地址空間,則這些進程就都可以直接訪問該共享內存區域,從而可以通過該區域進行通信。共享內存是進程間共享數據的一種最快的方法,一個進程向共享內存區域

原创 二叉搜索樹的增刪查改

二叉搜索樹的性質:    1.每個節點都有一個作爲搜索依據的關鍵碼(key),所有節點的關鍵碼都不一樣。    2.左子樹的關鍵碼都小於根節點的關鍵碼    3.右子樹的關鍵碼都大於根節點的關鍵碼    4.左右子樹都是二叉搜索樹#incl

原创 信號量

信號量的基本概念:    信號量的本質是一種數據操作鎖,它本身不具有數據交互的能力,而是通過控制其它的通信資源來實現進程間通信,它本身只是一種外部資源的標識。信號量在此過程中負責數據操作的同步與互斥等功能。    互斥:對臨界資源的獨佔。 

原创 讀寫鎖