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

posts - 297,  comments - 15,  trackbacks - 0

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

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

陷入窘境了,只好用最小系統(tǒng)法把功能部分和內(nèi)存分配都給屏蔽掉,這時發(fā)現(xiàn)內(nèi)存泄漏依然存在!仔細(xì)看top的輸出,幾乎是每次創(chuàng)建線程時內(nèi)存就往上漲一點(diǎn),只是增長速度不是很快,看來是線程的問題了。仔細(xì)分析發(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的話,線程的資源會一直得不到釋放而導(dǎo)致內(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)存。

其實(shí)仔細(xì)想想,valgrind檢查時已經(jīng)提示了pthread_create沒有釋放的問題,只是之前沒引起注意。其實(shí)這樣的問題也只有在長時間運(yùn)行時,慢慢積累這一點(diǎn)點(diǎn)的內(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ù)  更多評論
  
<2025年9月>
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>
            国产伦精品一区二区三区照片91| 欧美午夜视频一区二区| 国产精品久久久一区麻豆最新章节| 亚洲精品久久久一区二区三区| 欧美顶级少妇做爰| 欧美女激情福利| 亚洲欧美国产一区二区三区| 午夜久久一区| 亚洲国产成人高清精品| 亚洲精品国产精品久久清纯直播 | 欧美激情按摩在线| 一本一本久久a久久精品综合妖精| 99精品视频免费| 国产婷婷色一区二区三区四区 | 亚洲美女诱惑| 亚洲免费影视第一页| 揄拍成人国产精品视频| 亚洲精品久久久久久久久久久久久| 国产精品国产精品| 猛干欧美女孩| 国产精品毛片a∨一区二区三区| 久久亚洲欧美国产精品乐播| 欧美激情第4页| 性刺激综合网| 欧美日本在线视频| 久久蜜桃av一区精品变态类天堂| 欧美激情一二三区| 久久久久久久综合| 欧美日韩国产一区二区三区地区 | 亚洲香蕉成视频在线观看| 一区二区三区在线观看欧美| 亚洲免费观看| 亚洲国产小视频在线观看| 中文av字幕一区| 亚洲精品资源| 久久综合色播五月| 欧美一区二区视频97| 欧美精品乱人伦久久久久久| 久久久青草婷婷精品综合日韩| 欧美日韩直播| 亚洲国产小视频在线观看| 国产欧美一区二区在线观看| 亚洲欧洲日韩在线| 亚洲国产一区二区a毛片| 亚洲欧美综合国产精品一区| 亚洲午夜激情| 欧美人在线视频| 欧美成人性生活| 精品91在线| 欧美一区观看| 欧美在线观看天堂一区二区三区| 欧美色一级片| 99精品视频一区二区三区| 亚洲精品系列| 欧美韩国一区| 亚洲黄色一区| 一本久久综合| 欧美日韩黄色一区二区| 亚洲精品极品| 一本色道久久综合狠狠躁篇的优点 | 欧美久久久久久久久久| 亚洲第一天堂av| 亚洲国产精品一区二区久| 久久一区国产| 欧美成人资源网| 亚洲国产一成人久久精品| 麻豆成人小视频| 欧美国产大片| 日韩午夜av电影| 欧美日韩一区二| 亚洲婷婷免费| 久久成人精品视频| 韩日精品视频| 蜜臀av在线播放一区二区三区| 亚洲国产高清一区| 亚洲色图制服丝袜| 国产精品久久久久影院色老大 | 国产精品亚洲片夜色在线| 午夜精品一区二区三区在线| 久久久91精品国产| 亚洲国产精品99久久久久久久久| 女主播福利一区| 日韩午夜三级在线| 性视频1819p久久| 一区三区视频| 欧美日韩欧美一区二区| 亚洲欧美成人| 欧美激情视频一区二区三区在线播放| 亚洲日本视频| 国产美女精品视频| 女仆av观看一区| 在线一区亚洲| 欧美肥婆bbw| 午夜精品一区二区三区在线视| 国产在线一区二区三区四区| 欧美成人激情视频| 亚洲综合色丁香婷婷六月图片| 老司机精品久久| 亚洲一区二区三区激情| 精品va天堂亚洲国产| 欧美乱大交xxxxx| 欧美一区二区三区在线播放| 亚洲国产精品v| 久久精品国产77777蜜臀| 91久久精品国产91久久性色| 国产精品一区二区在线| 欧美a级片一区| 亚洲欧美视频在线观看| 亚洲人成在线观看一区二区| 久久婷婷蜜乳一本欲蜜臀| 一区二区三区日韩精品| 亚洲二区在线| 国产亚洲精品高潮| 国产精品国产自产拍高清av| 美女诱惑黄网站一区| 午夜国产一区| 亚洲手机成人高清视频| 亚洲国内欧美| 美女视频黄a大片欧美| 久久精品国产精品| 亚洲一区二区三区精品视频| 亚洲日韩中文字幕在线播放| 国产一区二区三区高清在线观看| 亚洲专区一区| 久久精品亚洲一区二区三区浴池| 一区二区三区精密机械公司 | 亚洲国产成人精品女人久久久| 国产欧美在线观看| 国产精品久久久久久av福利软件 | 亚洲高清色综合| 激情久久五月| 国内伊人久久久久久网站视频| 国产精品久久久久天堂| 欧美香蕉视频| 欧美日韩一区在线观看| 欧美日韩免费高清| 欧美精品久久久久久久免费观看| 欧美~级网站不卡| 免费成人黄色| 男男成人高潮片免费网站| 久久婷婷丁香| 美女图片一区二区| 欧美二区不卡| 欧美精品在欧美一区二区少妇| 欧美国产在线视频| 欧美片在线播放| 欧美区在线播放| 国产精品大片wwwwww| 国产精品进线69影院| 国产欧美精品| 黄色成人在线| 91久久亚洲| 亚洲无玛一区| 欧美一级视频免费在线观看| 久久精品毛片| 嫩草影视亚洲| 亚洲六月丁香色婷婷综合久久| 一本色道久久综合狠狠躁的推荐| 亚洲无限av看| 久久精品导航| 欧美激情亚洲| 国产精品入口66mio| 国产一区二区三区在线观看视频| 在线播放豆国产99亚洲| 亚洲免费观看高清完整版在线观看| 在线中文字幕一区| 久久gogo国模啪啪人体图| 欧美成人tv| 一本久久青青| 久久久久久电影| 欧美另类在线观看| 国产亚洲制服色| 亚洲国产欧美日韩另类综合| 一个色综合导航| 久久精品国产一区二区三| 亚洲大片在线| 亚洲一区一卡| 欧美激情小视频| 国产在线观看精品一区二区三区| 亚洲欧洲精品一区二区精品久久久| 一区二区三区日韩| 久久综合久久久| 一区二区三区视频在线| 媚黑女一区二区| 国产一区二区日韩精品| 一本综合精品| 农村妇女精品| 欧美一级电影久久| 欧美日韩亚洲激情| 亚洲国产视频一区二区| 欧美一级专区| 一区二区三区免费看| 免费久久99精品国产| 国产亚洲视频在线观看| 亚洲视频axxx| 91久久国产综合久久| 久久久久亚洲综合| 国产欧美日韩91| 亚洲欧美日韩区| 亚洲毛片在线|