原创 socket通信——UDP

UDP基礎知識UDP(User Datagram Protocol,用戶數據報協議)是一個簡單的、面向數據報的無連接協議,提供了快速但不一定可靠的傳輸服務。  UDP與TCP相比主要有以下區別。    1.UDP速度比TCP快      由

原创 IO多路複用——select

IO多路複用     是同步IO的一種,用一個進程一次等待多個IO就緒事件的發生,加大概率,儘可能高效的等。      適用場景  (1)當客戶處理多個描述字時(一般是交互式輸入和網絡套接口),必須使用I/O複用。  (2)當一個客戶同時處

原创 mutex&condition variable 黃金搭檔之 多消費者多生產者

Condition Variable都會搭配一個Mutex來用.我們知道Mutex的普通意義上是維持一個互斥變量,從而保證一個或一組操作的原子性.同樣,簡單的說Mutex加在Condition Variable上也是爲了保證它的原子性了.C

原创 劍指offer之面試題22:二叉搜索樹的後序遍歷序列

題目:輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。思路:BST的後序序列的合法序列是,對於一個序列S,最後一個元素是x (也就是根),如果去掉最後

原创 劍指offer之面試題24:二叉樹中和爲某一值的路徑

題目:輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和爲輸入整數的所有路徑。路徑定義爲從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑。例如輸入下圖中二叉樹和整數22,則打印出兩條路徑,第一條路徑包含結點10、12,第二條路徑包含

原创 多路複用——epoll

1、基本知識  epoll是在2.6內核中提出的,是之前的select和poll的增強版本。相對於select和poll來說,epoll更加靈活,沒有描述符限制。epoll使用一個文件描述符管理多個描述符,將用戶關係的文件描述符的事件存放到

原创 linux小技巧--vim下多行註釋和取消多行註釋

多行註釋:normal模式下,輸入ctl+v;visual block模式,按住上下鍵選中要註釋的行,輸入大寫I;在insert模式下,輸入//,最後按esc鍵。取消多行註釋normal模式下,輸入ctl+v;visual block模式下

原创 併發無鎖之環形隊列生產者消費者問題

1、生產者消費者問題       三種關係:生產者--生產者(互斥);消費者-消費者(互斥);生產者--消費者(互斥同步)       兩個角色:生產者;消費者       一種生產場所:緩衝區2、環形隊列(緩衝區)  數據結構:可以有多種

原创 linux下,pipe的容量的討論與查看

1、pipe的容量    2.6標準版本的linux內核,pipe緩衝區是64KB,儘管命令ulimit -a看到管道大小8塊,緩衝區的大小不是4 k,因爲內核動態分配最大16“緩衝條目”,乘64 k。這些限制是硬編碼的2、如何查看自己pc

原创 劍指offer之面試題23:從上往下打印二叉樹

題目:從上往下打印出二叉樹的每個節點,同層節點從左至右打印。(BFS)思路:根據題目,想到層序遍歷時,按照從上到下,從左到右的訪問每一個結點,用到一個輔助隊列(先進先出才能保證從左到右的訪問)。代碼:/* struct TreeNode {

原创 《將博客搬至CSDN》

搬家通知博文地址: 從http://momo462.blog.51cto.com/搬家到:http://blog.csdn.net/sinat_29300379