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

posts - 297,  comments - 15,  trackbacks - 0

昨天解決了一個隱蔽的內(nèi)存泄漏問題,原因是pthread_create后的僵死線程沒有釋放導(dǎo)致的內(nèi)存持續(xù)增長。
現(xiàn)象是這樣的:短時間內(nèi)程序運行正常,但跑了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)存管理錯誤(事實證明雖然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)存就往上漲一點,只是增長速度不是很快,看來是線程的問題了。仔細(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)存。

其實仔細(xì)想想,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 閱讀(3133) 評論(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年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用鏈接

留言簿(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>
            国产欧美亚洲精品| 一本久道久久久| 亚洲激情第一区| 一区二区三区在线不卡| 国内精品久久久久久久97牛牛| 国语精品一区| 国产麻豆9l精品三级站| 99国产精品久久久| 裸体女人亚洲精品一区| 亚洲免费一在线| 一区二区激情| 午夜亚洲激情| 久久久久久综合| 欧美激情小视频| 亚洲天堂偷拍| 夜夜嗨av一区二区三区网页| 亚洲淫性视频| 久久久视频精品| 欧美激情视频免费观看| 欧美日韩一区在线观看| 国产婷婷成人久久av免费高清 | 亚洲精品在线视频观看| 亚洲另类黄色| 欧美中文字幕不卡| 亚洲国产cao| 一区二区三区精品视频| 久久都是精品| 免费不卡在线观看av| 国产精品福利在线| 亚洲国产精品ⅴa在线观看| 亚洲香蕉网站| 亚洲主播在线观看| 中文精品一区二区三区| 久久精品综合网| 亚洲美女电影在线| 久久伊人一区二区| 国产伦一区二区三区色一情| 日韩视频中文| 欧美成人一区二免费视频软件| 99人久久精品视频最新地址| 午夜精品久久久久久久男人的天堂 | 99成人免费视频| 久久精品女人的天堂av| 亚洲日本中文字幕免费在线不卡| 久久精品亚洲乱码伦伦中文 | 日韩视频一区二区三区| 欧美一区二粉嫩精品国产一线天| 亚洲午夜日本在线观看| 久久久噜噜噜久噜久久| 国产精品久久久久一区| 在线亚洲欧美视频| 亚洲国产欧美日韩| 欧美91大片| 亚洲国产乱码最新视频| 久久久亚洲影院你懂的| 亚洲性色视频| 国产精品久久一卡二卡| 亚洲免费观看高清在线观看| 亚洲一区欧美激情| 国产精品网站在线| 一区二区三区日韩在线观看| 免费欧美电影| 久久香蕉国产线看观看av| 韩日精品视频| 久久综合999| 久久久www免费人成黑人精品| 亚洲一区二区三区视频| 欧美成人中文字幕| 日韩性生活视频| 99在线|亚洲一区二区| 欧美黄色片免费观看| 亚洲精品一区二区三区蜜桃久| 亚洲精品视频免费在线观看| 免费成人av| 欧美激情免费在线| 亚洲视频在线观看免费| 亚洲性视频网站| 国产一区在线播放| 欧美成va人片在线观看| 欧美绝品在线观看成人午夜影视| 欧美日韩高清在线观看| 在线视频欧美精品| 亚洲综合欧美| 国产综合欧美在线看| 欧美大尺度在线| 欧美日韩中文精品| 欧美一区激情| 美女精品自拍一二三四| 中日韩美女免费视频网站在线观看| 午夜日韩av| 久久精品免费观看| 日韩亚洲精品电影| 亚洲一区欧美激情| 亚洲第一页在线| 亚洲日本电影在线| 国产欧美日韩一区| 欧美激情在线免费观看| 欧美激情偷拍| 久久精品男女| 欧美网站在线| 欧美电影在线观看| 国产精品日韩一区| 亚洲激情影院| 国内精品视频在线观看| 欧美日韩亚洲一区三区| 老司机精品久久| 榴莲视频成人在线观看| 欧美成人视屏| 亚洲男人的天堂在线aⅴ视频| 久久久在线视频| 欧美精品尤物在线| 久久免费精品日本久久中文字幕| 亚洲理论在线观看| 国产精品无码专区在线观看| 亚洲大片精品永久免费| 国产精品一级在线| 日韩亚洲视频在线| 最新日韩在线视频| 久久久综合视频| 国产精品久久毛片a| 亚洲人成77777在线观看网| 亚洲视频网站在线观看| 亚洲精品影院在线观看| 久久久久久夜精品精品免费| 欧美在线91| 欧美色欧美亚洲另类七区| 欧美激情中文不卡| 亚洲欧洲一区| 乱人伦精品视频在线观看| 久久夜色精品亚洲噜噜国产mv | 亚洲无玛一区| 亚洲看片免费| 免费一区二区三区| 老司机午夜精品| 国产欧美日韩精品在线| 一本色道久久| 亚洲视频免费看| 欧美精品三级| 亚洲美女视频在线观看| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区三区涩| 99v久久综合狠狠综合久久| 欧美大胆a视频| 亚洲欧洲在线视频| 一区二区三区黄色| 欧美精品97| 一区二区欧美日韩视频| 亚洲无毛电影| 国产精品网站一区| 久久精彩免费视频| 欧美激情精品久久久久久蜜臀| 欧美日韩一区二区三区在线观看免| 亚洲视频图片小说| 欧美激情一区二区三级高清视频| 亚洲香蕉网站| 欧美人交a欧美精品| 一区二区成人精品 | 欧美在线地址| 国产精品一区二区a| 欧美一区二区视频在线观看| 久久香蕉国产线看观看av| 国产真实乱偷精品视频免| 久久婷婷蜜乳一本欲蜜臀| 亚洲第一福利在线观看| 亚洲午夜伦理| 国产又爽又黄的激情精品视频| 亚洲精品午夜精品| 亚洲男人的天堂在线观看 | 欧美视频一二三区| 亚洲在线日韩| 蜜桃久久av一区| 亚洲午夜激情网站| 国产欧美综合在线| 欧美黄色aaaa| 欧美一区二区三区免费观看| 久久青草福利网站| 亚洲午夜精品一区二区三区他趣 | 一区二区精品国产| 欧美在线视频播放| 亚洲日韩成人| 国产日韩精品视频一区| 欧美成人在线免费观看| 欧美午夜在线| 久久国产日本精品| 亚洲美女尤物影院| 欧美.www| 欧美在线黄色| 一区二区欧美日韩| 亚洲第一福利在线观看| 国产精品普通话对白| 欧美a级一区二区| 欧美一区二区三区视频在线| 亚洲精品一级| 亚洲电影免费| 久久综合网色—综合色88| 亚洲午夜极品| 中文一区在线| 夜夜嗨av一区二区三区中文字幕 | 亚洲精品资源美女情侣酒店| 亚洲欧美怡红院|