原创 樸素查找子串算法和KMP算法

 如何在一個字符串查找子串呢?按照我們以前學過的查找方法無非是這樣的。         假如就給定字符串A爲“ababcabcd.....”,設要從A查找的子串a爲"abc",我們就同時遍歷A串,和a串,分別用i和j記錄遍歷的下標,如果A

原创 線程同步----睡覺與喚醒

從上一篇文章《線程同步----鎖》中我們瞭解瞭解決線程同步中最基本的一些問題,那就是如何用 鎖 來保護合作線程們的臨界區數據不被重複修改。但是從這裏引出了一個問題,那就是如果一個線程A先進入了臨界區且上了鎖,等到B線程也到了臨界區前發現鎖

原创 I/O複用---select

  I/O複用也是提高服務器性能的一種非常高效的方式,它的原理是什麼呢?  我們知道服務器在   接受新的客戶端鏈接,接受已連接客戶端發來的數據   等事情上不總是連續的,持續的。假如 一個服務器不使用多線程編程的話,只用一個main線程

原创 C和C++的區別(下)

4. const 的使用c語言裏const是常變量,而c++裏是常量,即立即數。因此c語言裏const修飾的變量並不能作爲初始化數組長度的下標。而c++裏const修飾的變量編譯時就被當作立即數,可以當作數組初始化下標 c語言裏用cons

原创 IPV4報頭及IP分片

IP協議是無連接,不可靠,無狀態的。無連接就是指通訊時不能長久的維持對方信息,保持連接。不可靠就是不能保證數據準確的發送給接受方,可能會丟失,變錯,截斷等。無狀態就是指發送的數據可能是亂序的重複的。至於爲什麼IP協議的特性是這樣的。爲什麼

原创 恢復寫作,談談網絡連接的硬件設備

      由於爲了準備春季招聘,博客斷更了相當長的一段時間,最近繁雜的事情也差不多處理完了,恰好今天是個好日子,61兒童節,那麼就開始恢復寫作,當然好久沒有寫了,一上來就不肝乾貨了,先談談些簡單的東西。就是網絡中常用的一些硬件設備,例如

原创 多進程網絡編程

本文概述如何使 服務器同時 連接處理 客戶端們。       即服務器的一個進程只負責接受 請求連接的客戶端。而具體如何跟各個客戶端發送數據交給自己創造的子進程去完成。       用TCP協議來舉例。       服務器在創造套接字,並

原创 select,poll和epoll的區別

Select就是通過監聽事件寫入到一個32個元素 累計1024位的long數組中(就是fed_sets結構體的內容),用戶加入監聽位,如果有監聽事件發生就會改變位的標誌。但這樣會有兩個缺點,一是監聽的數量被限制在了1024(三種事件:可讀

原创 C和C++的區別(上)

c和c++的區別先總結4點1.  函數的默認值C++可以給函數定義或聲明時給參數賦初值(c語言後來制定的c99標準也能給默認值,但由於現在普遍學習的是c89標準,因此沒有此功能)使用默認值的好處是什麼?使用默認值的原理又是什麼?使用默認值

原创 線程

線程是什麼       線程是進程內部的一條執行序列(執行流),每個進程至少有一條執行序列:main的執行體。進程可以通過線程庫創建N條線程,新建的線程爲函數線程,main是主線程。雖然感覺是進程包含着線程,進程由線程組成,但是進程提出的

原创 線程池網絡編程

多線程編程中,每有一個新連接時就會創建一個新的線程去維護連接進行收發數據,但是這會有一個問題,就是頻繁的線程創造結束會使系統內核的負擔加重,對於執行任務的效率也相對低下,因爲還要多出創造線程的時間。  那麼如何提高效率,減輕內核的負擔呢?

原创 進程通訊(三)--信號量

 信號量雖然也是進程通訊的一部分,但比起其他的通訊方式比如管道,消息隊列這些直接發送數據的形式不太相同。主要起到控制同步異步的作用。  何爲同步異步?聽到同步不要因爲這個“同”字就聯想到倆進程同時運行。恰恰相反,同步往往要求一個進程等待另

原创 進程通訊(五)--共享內存

 共享內存就是倆進程共同擁有的內存,一般執行一個程序,會給內存上分配該進程的空間吧。  如果兩個進程有一部分是使用共享內存,那麼這倆進程其他部分會各自分配自己的內存空間,而使用共享內存的地方只會分配一個共有的內存空間,也就是說這部分共享內

原创 函數調用棧

我們常用函數,知道使用函數時會跳到函數定義的代碼段去執行,然後執行完後再返回到調用函數去,但以下的一些問題卻仍不清楚。這個調用過程的原理是什麼調用函數前要做什麼事情函數的參數是如何傳遞的如何跳轉到被調用函數執行完被調函數後如何返回調用函數

原创 進程通訊(一)--有名管道

  進程間通訊的意義很多書上都有說,總之是非常重要的一部分,就不多囉嗦了,簡單來說是爲了完成進程間的協作功能。  然而進程間的通訊方式也不少,信號,信號量,管道,共享內存.....  今天先來說說管道中的有名管道。當然有有名管道自然也有無