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
未完待續。。。