青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 297,  comments - 15,  trackbacks - 0

昨天解決了一個隱蔽的內(nèi)存泄漏問題,原因是pthread_create后的僵死線程沒有釋放導致的內(nèi)存持續(xù)增長。
現(xiàn)象是這樣的:短時間內(nèi)程序運行正常,但跑了12小時左右,用top查看其內(nèi)存占用居然高達2G,于是馬上意識到有內(nèi)存泄漏。

最先想到的是malloc/free、new/delete沒有配對,申請的內(nèi)存沒有釋放。于是寫了個跟蹤malloc/free調(diào)用的模塊,不過檢查中并沒有找到未釋放的內(nèi)存。之后懷疑是不是 free then malloc 導致的內(nèi)存管理錯誤(事實證明雖然free后不是立即回收內(nèi)存,但是接連調(diào)用free & malloc并不會影響操作系統(tǒng)的內(nèi)存管理),不過寫了個小程序發(fā)現(xiàn)并不是這么回事。

陷入窘境了,只好用最小系統(tǒng)法把功能部分和內(nèi)存分配都給屏蔽掉,這時發(fā)現(xiàn)內(nèi)存泄漏依然存在!仔細看top的輸出,幾乎是每次創(chuàng)建線程時內(nèi)存就往上漲一點,只是增長速度不是很快,看來是線程的問題了。仔細分析發(fā)現(xiàn),之前圖簡單 pthread_create (&thread, NULL, &thread_function, NULL); 就這么寫了,參數(shù)2沒有設(shè)置線程結(jié)束后自動detach,并且沒有使用pthread_join或pthread_detach釋放執(zhí)行結(jié)束后線程的空間!

 

Linux man page 里有已經(jīng)說明了這個問題:
    When a joinable thread terminates, its memory resources (thread descriptor and stack) are not deallocated until another thread performs pthread_join on it. Therefore, pthread_join must be called  once  for each joinable thread created to avoid memory leaks.

也就說線程執(zhí)行完后如果不join的話,線程的資源會一直得不到釋放而導致內(nèi)存泄漏!一時的圖快后患無窮啊。

 

解決辦法

代碼
 1 // 最簡單的辦法,在線程執(zhí)行結(jié)束后調(diào)用pthread_detach讓他自己釋放
 2 pthread_detach(pthread_self());
 3 
 4 
 5 // 或者創(chuàng)建線程前設(shè)置 PTHREAD_CREATE_DETACHED 屬性
 6 pthread_attr_t attr;
 7 pthread_t thread;
 8 pthread_attr_init (&attr);
 9 pthread_attr_setdetachstate (&attrPTHREAD_CREATE_DETACHED);
10 pthread_create (&thread, &attr&thread_function, NULL);
11 pthread_attr_destroy (&attr);

 

第2行的那種方法最簡單,在線程函數(shù)尾部加上這句話就可以將線程所占用的資源給釋放掉;或者像 5-11 所示的方法設(shè)置detach屬性,這樣也會在線程return/pthread_exit后釋放內(nèi)存。

其實仔細想想,valgrind檢查時已經(jīng)提示了pthread_create沒有釋放的問題,只是之前沒引起注意。其實這樣的問題也只有在長時間運行時,慢慢積累這一點點的內(nèi)存才會暴露出來,看來valgrind的提示也不能置之不理啊。

from:

http://www.cnblogs.com/bits/archive/2009/12/04/no_join_or_detach_memory_leak.html

posted on 2010-01-14 16:40 chatler 閱讀(3129) 評論(2)  編輯 收藏 引用 所屬分類: Linux_Coding

FeedBack:
# re: 解決Linux pthread_create內(nèi)存泄漏問題[未登錄]
2010-06-02 17:08 | jack
不錯,支持一個。  回復(fù)  更多評論
  
# re: 解決Linux pthread_create內(nèi)存泄漏問題
2012-05-03 10:07 | 朱先生
我試過,每一種方法有的時候不行。
第二種是可以的。
  回復(fù)  更多評論
  
<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感覺這個博客還是不錯,雖然做的東西和我不大相關(guān),覺得看看還是有好處的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            两个人的视频www国产精品| 国产日韩一区欧美| 亚洲一区二区黄| 亚洲性视频h| 亚洲欧美国产毛片在线| 翔田千里一区二区| 久久精品视频在线| 鲁鲁狠狠狠7777一区二区| 久久中文精品| 欧美日韩国产在线| 国产女主播一区二区| 国产原创一区二区| 亚洲激情偷拍| 亚洲视频播放| 久久久久久亚洲精品杨幂换脸 | aa国产精品| 日韩一级大片在线| 亚洲欧美成人| 欧美福利一区二区三区| 国产精品你懂得| 亚洲电影自拍| 亚洲欧美999| 欧美丰满少妇xxxbbb| 一区二区三区欧美视频| 久久久www成人免费精品| 欧美日韩国产区| 韩国精品在线观看| 亚洲一区不卡| 欧美超级免费视 在线| 宅男噜噜噜66国产日韩在线观看| 欧美在线观看一二区| 欧美日韩一区二区高清| 亚洲国产成人av在线| 久久精品成人欧美大片古装| 亚洲精品自在久久| 免费不卡视频| 国语对白精品一区二区| 亚洲欧美国产不卡| 亚洲精品午夜| 免费欧美在线| 亚洲成人在线网站| 久久国产免费看| 在线亚洲欧美视频| 欧美乱人伦中文字幕在线| 尤物精品国产第一福利三区| 久久福利精品| 亚洲综合电影| 国产精品青草久久| 亚洲一级影院| 一区二区三区欧美在线观看| 欧美精品免费播放| 亚洲精品欧洲| 亚洲茄子视频| 久久躁日日躁aaaaxxxx| 黄色国产精品一区二区三区| 久久精品国产v日韩v亚洲| 亚洲天堂成人| 国产精品网站在线播放| 亚洲欧美日韩视频二区| 亚洲深夜激情| 国产精品欧美一区二区三区奶水| 午夜精彩国产免费不卡不顿大片| 一本综合精品| 国产精品久久久一本精品| 亚洲一区在线免费| 亚洲综合精品四区| 国产精品青草综合久久久久99 | 久久免费视频网站| 黄色欧美成人| 欧美高清视频在线播放| 欧美亚洲视频一区二区| 性欧美xxxx视频在线观看| 午夜老司机精品| 国产精品久久久久9999| 亚洲欧美精品suv| av成人老司机| 国产美女精品视频免费观看| 亚洲欧美日韩人成在线播放| 亚洲自拍16p| 国产小视频国产精品| 久久婷婷亚洲| 欧美激情亚洲激情| 亚洲在线一区二区| 欧美一区二区视频97| 国产字幕视频一区二区| 蜜臀99久久精品久久久久久软件| 男女激情久久| 亚洲一区区二区| 亚洲欧美另类国产| 亚洲国产高清视频| 在线视频欧美日韩精品| 国产日韩欧美a| 免费观看成人| 欧美精品一区二区三区一线天视频| 亚洲一级二级在线| 久久成人羞羞网站| 一本一道久久综合狠狠老精东影业| 亚洲欧美www| 亚洲精品日韩在线| 性欧美超级视频| 9色国产精品| 欧美一二区视频| 夜夜爽www精品| 欧美呦呦网站| 亚洲视频图片小说| 久久频这里精品99香蕉| 欧美一区二区三区的| 欧美高清视频免费观看| 欧美在线你懂的| 欧美日一区二区三区在线观看国产免| 久久蜜桃香蕉精品一区二区三区| 欧美剧在线观看| 久久色中文字幕| 国产精品无人区| 99精品欧美一区| 亚洲电影观看| 久久精品综合一区| 欧美一区二区三区视频免费播放| 欧美极品aⅴ影院| 牛牛精品成人免费视频| 国内精品视频一区| 亚洲欧美在线aaa| 亚洲欧美www| 欧美激情综合五月色丁香| 亚洲第一色在线| 激情校园亚洲| 欧美在线999| 久久久久久久久久久一区 | 国产日韩欧美黄色| 亚洲视频导航| 亚洲视频自拍偷拍| 国产精品日韩高清| 久久综合久色欧美综合狠狠| 欧美在线亚洲| 国产精品扒开腿做爽爽爽软件| 亚洲大片一区二区三区| 1024亚洲| 欧美不卡三区| 亚洲国产视频一区二区| 亚洲人成亚洲人成在线观看图片| 久久婷婷色综合| 免费在线播放第一区高清av| 激情婷婷欧美| 另类欧美日韩国产在线| 欧美激情视频在线播放| 99re6热只有精品免费观看| 免费观看成人| 亚洲电影下载| 宅男噜噜噜66一区二区| 国产精品久久久久久久久动漫| 亚洲午夜影视影院在线观看| 亚洲综合国产| 国产一区二区日韩精品欧美精品| 欧美诱惑福利视频| 欧美h视频在线| aⅴ色国产欧美| 国产精品日韩一区二区| 欧美专区在线播放| 欧美超级免费视 在线| 99精品欧美一区| 国产日韩精品入口| 噜噜噜久久亚洲精品国产品小说| 亚洲三级视频| 午夜在线观看免费一区| 伊人精品视频| 欧美日韩免费观看一区=区三区| 在线一区二区三区四区五区| 性久久久久久久| 狠狠久久综合婷婷不卡| 欧美激情一区二区三区全黄| 一区二区三区 在线观看视频 | 小嫩嫩精品导航| 国产一区二区三区在线观看免费视频| 六月天综合网| 亚洲视频在线视频| 美国三级日本三级久久99| 一本一道久久综合狠狠老精东影业 | 亚洲四色影视在线观看| 国产一区二区三区在线免费观看| 欧美.www| 欧美一区二区三区四区在线 | 亚洲美女精品久久| 久久精品国产99精品国产亚洲性色| **欧美日韩vr在线| 欧美日韩在线精品| 久久婷婷亚洲| 亚洲天堂偷拍| 亚洲人成网站色ww在线| 久久精品综合一区| 国产精品成人在线观看| 老司机精品导航| 国产精品99久久久久久久vr| 好看的av在线不卡观看| 欧美日韩国产高清视频| 久久久国产亚洲精品| 亚洲影院一区| 亚洲黄色成人| 免费永久网站黄欧美| 久久亚裔精品欧美| 午夜精品免费在线|