muduo C++網絡庫學習記錄

muduo是基於非阻塞IO和事件驅動的C++網絡庫

對象的構造和析構:

1.對象構造要做到線程安全,唯一要做到的就是在構造期間不泄露this指針,即:

不要在構造函數中註冊回調函數;

不要在構造函數中把this指針傳遞給跨線程的對象;

在執行構造函數的過程中,對象其實還是沒有完成初始化,this指針的泄露會造成其他對象可以訪問這個還沒有創建好的對象,行爲未可知

2.對於對象析構,要讓析構函數按照本來的順序依次執行,而不要併發執行。

本class成員的mutex對象只能同步和保護本class的其他數據成員的讀寫,並不能保護到析構函數


C++中可能出現的內存問題:

1.緩衝區溢出

2.懸空指針/野指針

3.重複釋放

4.內存泄露

5.new和delete的調用不成對

6.內存碎片

智能指針(RAII原則)可以解決1~5

gdb thread apply all bt

未完待續。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章