寫給c/c++的新同行門,CTO門把你們的寶貴經驗拿出來吧,讓這個帖對大伙有用
1、越界
越界是最難查的,注意memcpy strcpy,strncpy這些函數使用前一定要檢查邊界
特別是你提供函數給別人用時,你的函數中用到了這些東西,一定要檢查別人傳給你的指針的
邊界
2、變量初始化
這種問題要養成好習慣,否則出來偶然性問題,非常難查
3、多線程指針管理
在多線程環境下使用指針時,最好采用引用計數,讓最后一個放充引用計數時,指針刪除,避免一個線程在使用指針,另外線程刪除掉
4、多線程鎖的管理
多線程鎖要粒度要適中,盡量減少 一個函數 進入多個鎖,避免一個大函數一個大鎖影響性能,可學習數據庫的表級,行級鎖
盡量不要在回調函數中放鎖,易 引起死鎖
做到線程安全函數單向調用,上層往下層調用,下屋向上層采用事件驅動反饋,避免調用棧
過深,易引起死鎖
,
5、多線程對象生存期管理
盡量當多線程共享對象 盡量不要直接刪除,建議采用狀態機形式來管理,其它線程設置狀態
由一個線程統一按狀態管理生存期
6、構造函數
函造函數中不要放虛函數,絕對不要在構造函數中開線程,并且線程調用自己的成員
7、內聯
虛函數不要內聯
8、多線程創建辦法
如果用C運行庫函數,要注意用C運行庫的方法
9,內存管理
建議采用內存池管理
10、線程生存期管理
線程中盡量不要調用同步函數,不要強行殺線程,要讓線程不斷循環,等待死亡信號自己退出
大盤預測
國富論
posted on 2010-05-08 19:30
華夢行 閱讀(229)
評論(0) 編輯 收藏 所屬分類:
C