muduo 原始碼分析(前言0)

2021-07-30 09:44:28 字數 674 閱讀 2419

前言0

個人高效能、高併發linux伺服器端程式設計(網路程式設計)比較感興趣,自己寫過一些簡單的tcp通訊程式,用程序池實現簡單cgi伺服器,用執行緒池實現簡單web伺服器。熟悉c++程式語言,但是沒有用c++參與過乙個專案,所以想尋找乙個開源專案,用c++自己實現乙個相對完整的網路庫,所以選擇了muduo開源網路庫作為學習的第乙個系統。因為他的**量比較小,書中提到了如何借助現成庫來發揮c++的優勢!如何解決網路程式設計中經常碰到的問題,書中又是如何巧妙的解決的!對於從頭開始學習網路庫的一步一步實現比較有幫助。

muduo網路庫是乙個基於非阻塞io和事件驅動的現代c++網路庫,支援one loop per thread io模型和reator事件驅動模式。

這個專案是自己第乙個比較完整的閱讀和分析的開源專案,使我對linux 多執行緒linux c++網路程式設計的理解有醍醐灌頂的效果。在閱讀原始碼的過程中,開始總是找不到思緒,弄不清系統脈絡,像乙個無頭蒼蠅到處亂飛,也由於在最近在找實習面試的不順利導致心態也變的浮躁起來。最終,調整心態,慢慢進入狀態,帶著問題來看原始碼,效果非常好。 例如:對於乙個網路庫要解決的主要問題就是 1)監聽連線,2)接入連線,3)處理讀,寫事件等。當然還有很多問題需要處理,比如斷開連線的處理,讀寫緩衝區的實現等,這些問題可以一步一步來分析,將這些問題分開來看。

本系列文章將按照這種思路,深度剖析muduo原始碼。

libdvbpsi原始碼分析 前言

libdvbpsi 是vlc中的乙個解碼庫。它能解碼或解析出所有的節目專用資訊 psi 以及mpeg2 ts流或dvb流 中的描述符 descriptor 目前能解析的psi si表包括 bat,cat,eit,nit,pat,pmt,sdt,sis,tot,tdt bat bouquet asso...

Muduo原始碼分析(2) 原子類

如果 ptr oldval,就將newval寫入 ptr,然後返回 ptr 否則直接返回 ptr sync val compare and swap type ptr,type oldval type newval,返回修改前的值 sync fetch and add type ptr,type v...

muduo原始碼分析執行緒池

執行緒池的實現原理 在併發程式設計中,由於執行緒的反覆建立於銷毀是非常消耗時間的,在存在大量的執行緒的建立於銷毀的程式中,我們可以事先建立出一部分執行緒,然後管理這些執行緒去處理我們的任務,這樣可以節省一大部分反覆建立與銷毀的時間開銷,執行緒池的好處這裡不多說了,看一下muduo 網路庫對執行緒池的...