隨筆-295  評(píng)論-26  文章-1  trackbacks-0
          寫給c/c++的新同行門,CTO門把你們的寶貴經(jīng)驗(yàn)?zāi)贸鰜戆桑屵@個(gè)帖對(duì)大伙有用

          1、越界

           越界是最難查的,注意memcpy strcpy,strncpy這些函數(shù)使用前一定要檢查邊界

           特別是你提供函數(shù)給別人用時(shí),你的函數(shù)中用到了這些東西,一定要檢查別人傳給你的指針的
           邊界

          2、變量初始化

           這種問題要養(yǎng)成好習(xí)慣,否則出來偶然性問題,非常難查

          3、多線程指針管理

           在多線程環(huán)境下使用指針時(shí),最好采用引用計(jì)數(shù),讓最后一個(gè)放充引用計(jì)數(shù)時(shí),指針刪除,避免一個(gè)線程在使用指針,另外線程刪除掉

          4、多線程鎖的管理

           多線程鎖要粒度要適中,盡量減少 一個(gè)函數(shù) 進(jìn)入多個(gè)鎖,避免一個(gè)大函數(shù)一個(gè)大鎖影響性能,可學(xué)習(xí)數(shù)據(jù)庫的表級(jí),行級(jí)鎖

           盡量不要在回調(diào)函數(shù)中放鎖,易 引起死鎖

          做到線程安全函數(shù)單向調(diào)用,上層往下層調(diào)用,下屋向上層采用事件驅(qū)動(dòng)反饋,避免調(diào)用棧

           過深,易引起死鎖 

          5、多線程對(duì)象生存期管理

           盡量當(dāng)多線程共享對(duì)象 盡量不要直接刪除,建議采用狀態(tài)機(jī)形式來管理,其它線程設(shè)置狀態(tài)

           由一個(gè)線程統(tǒng)一按狀態(tài)管理生存期

          6、構(gòu)造函數(shù)

          函造函數(shù)中不要放虛函數(shù),絕對(duì)不要在構(gòu)造函數(shù)中開線程,并且線程調(diào)用自己的成員

          7、內(nèi)聯(lián)
           
            虛函數(shù)不要內(nèi)聯(lián)

          8、多線程創(chuàng)建辦法

          如果用C運(yùn)行庫函數(shù),要注意用C運(yùn)行庫的方法

          9,內(nèi)存管理

          建議采用內(nèi)存池管理

          10、線程生存期管理

          線程中盡量不要調(diào)用同步函數(shù),不要強(qiáng)行殺線程,要讓線程不斷循環(huán),等待死亡信號(hào)自己退出



          大盤預(yù)測(cè) 國富論
          posted on 2010-05-08 19:30 華夢(mèng)行 閱讀(232) 評(píng)論(0)  編輯  收藏 所屬分類: C
          主站蜘蛛池模板: 虞城县| 临武县| 宁德市| 黄梅县| 平顺县| 湘西| 双江| 福安市| 巴楚县| 馆陶县| 井冈山市| 都江堰市| 九龙城区| 顺平县| 岢岚县| 临猗县| 阳原县| 疏附县| 定结县| 扶沟县| 三河市| 西城区| 玉树县| 临高县| 仪征市| 清苑县| 四会市| 新沂市| 赤城县| 博白县| 平陆县| 西峡县| 阜城县| 淄博市| 新津县| 尖扎县| 康保县| 通化县| 顺昌县| 宜昌市| 南漳县|