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

posts - 297,  comments - 15,  trackbacks - 0

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

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

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

 

Linux man page 里有已經說明了這個問題:
    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.

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

 

解決辦法

代碼
 1 // 最簡單的辦法,在線程執行結束后調用pthread_detach讓他自己釋放
 2 pthread_detach(pthread_self());
 3 
 4 
 5 // 或者創建線程前設置 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行的那種方法最簡單,在線程函數尾部加上這句話就可以將線程所占用的資源給釋放掉;或者像 5-11 所示的方法設置detach屬性,這樣也會在線程return/pthread_exit后釋放內存。

其實仔細想想,valgrind檢查時已經提示了pthread_create沒有釋放的問題,只是之前沒引起注意。其實這樣的問題也只有在長時間運行時,慢慢積累這一點點的內存才會暴露出來,看來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 閱讀(3130) 評論(2)  編輯 收藏 引用 所屬分類: Linux_Coding

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

常用鏈接

留言簿(10)

隨筆分類(307)

隨筆檔案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

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

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久久久免费动漫| 亚洲精品在线电影| 久久影院亚洲| 亚洲国产精品久久久久婷婷884| 午夜亚洲伦理| 亚洲精品乱码久久久久久黑人| 欧美自拍偷拍| 国产综合久久久久久| 欧美一区二区三区男人的天堂| 亚洲精品网站在线播放gif| 久久久久久久网| 精品99一区二区| 久久久伊人欧美| 小辣椒精品导航| 国产欧美日韩综合精品二区| 亚洲男人的天堂在线| 亚洲国产一区二区在线| 玖玖玖免费嫩草在线影院一区| 欧美一区影院| 亚洲永久在线| 狠狠色丁香婷婷综合| 久久夜精品va视频免费观看| 久久免费精品视频| 激情亚洲成人| 亚洲一区二区三区在线看| 欧美一区在线视频| 午夜视频精品| 91久久视频| 99re在线精品| 国产精品亚洲综合久久| 9l国产精品久久久久麻豆| 最近中文字幕mv在线一区二区三区四区| 久热这里只精品99re8久| 免费观看在线综合| 亚洲激情视频在线| 91久久国产综合久久91精品网站| 欧美激情亚洲| 性欧美办公室18xxxxhd| 欧美亚洲一级片| 亚洲人www| 欧美亚洲三区| 欧美黄在线观看| 亚洲自拍偷拍福利| 久久视频在线看| 亚洲一级片在线看| 久久成年人视频| 午夜精品久久久久久久99水蜜桃| 久久久亚洲精品一区二区三区 | 久久精品1区| 久久亚洲春色中文字幕久久久| 欧美一区二区三区男人的天堂| 欧美中文在线免费| 一本久久a久久免费精品不卡| 久久久久五月天| 亚洲在线一区二区| 欧美福利视频一区| 欧美a级片网| 国产精品影院在线观看| 亚洲欧洲日本国产| 亚洲九九精品| 久久亚洲一区二区| 午夜视频在线观看一区二区| 亚洲欧美日韩一区| 国产精品色在线| 亚洲国产精品久久久久秋霞不卡| 欧美成va人片在线观看| 欧美黑人一区二区三区| 国产视频精品免费播放| 亚洲国产专区| 亚洲视频一区在线观看| 裸体素人女欧美日韩| 久久久99精品免费观看不卡| 国产专区精品视频| 亚洲伊人观看| 免费亚洲婷婷| 亚洲三级网站| 亚洲人成网站在线播| 宅男噜噜噜66一区二区 | 午夜免费在线观看精品视频| 欧美在线观看视频一区二区| 亚洲小说春色综合另类电影| 久久伊伊香蕉| 香蕉久久夜色精品国产| 国内一区二区在线视频观看| 亚洲一区国产| 久久免费视频在线| 亚洲区国产区| 免费av成人在线| 99在线视频精品| 国产午夜精品理论片a级探花| 亚洲欧美影音先锋| 久久国产精品高清| 狠狠色综合一区二区| 欧美综合77777色婷婷| 久久综合九色99| 久久综合色综合88| 欧美成人午夜激情在线| 好吊妞**欧美| 欧美成人国产| 亚洲国产小视频在线观看| av不卡免费看| 国产精品亚洲综合一区在线观看| 亚洲一区www| 亚洲国产三级在线| 麻豆精品精品国产自在97香蕉| 欧美激情一区二区久久久| 亚洲级视频在线观看免费1级| 免费观看成人www动漫视频| 亚洲国产美女久久久久| 一区二区av| 久久久精品一区| 欧美激情一区在线| 一区二区三区免费网站| 国产麻豆91精品| 久久蜜臀精品av| 欧美激情第一页xxx| 亚洲尤物影院| 亚洲黄一区二区| 久久av免费一区| 亚洲视频精选在线| 亚洲国产天堂久久国产91| 欧美精品1区2区| 久久夜色精品| 欧美一区二区| 亚洲女人天堂成人av在线| 亚洲免费观看高清完整版在线观看熊 | 99精品久久久| 亚洲国产精品一区制服丝袜 | 亚洲九九精品| 亚洲高清资源| 欧美黄色精品| 女同性一区二区三区人了人一 | 免费中文字幕日韩欧美| 久久久久国产免费免费| 午夜日韩在线观看| 午夜精品久久久久久99热软件| 夜夜嗨网站十八久久| 日韩视频一区二区在线观看| 午夜精品免费| 午夜精品999| 欧美资源在线| 久久久久久久综合色一本| 久久久99免费视频| 久久久久五月天| 久久婷婷国产麻豆91天堂| 久久综合精品一区| 男女视频一区二区| 欧美国产亚洲视频| 欧美日韩网址| 国产精品免费一区豆花| 国产亚洲精品久久久| 樱桃国产成人精品视频| 亚洲国产精品www| 99热精品在线观看| 一区二区三区四区蜜桃| 国产美女精品人人做人人爽| 国产日韩欧美在线看| 激情综合中文娱乐网| 亚洲国产片色| 在线天堂一区av电影| 午夜激情久久久| 久久亚洲欧美| 亚洲激情视频在线| 一区二区三区高清视频在线观看| 亚洲综合首页| 久久资源在线| 国产精品久久久久aaaa樱花| 国内外成人在线| 亚洲精一区二区三区| 午夜久久福利| 欧美激情一区二区三区成人| 亚洲午夜精品福利| 久久久噜噜噜久久狠狠50岁| 欧美日韩综合另类| 极品日韩久久| 亚洲一区二区三区成人在线视频精品| 欧美在线1区| 亚洲欧洲免费视频| 欧美淫片网站| 欧美午夜精品理论片a级按摩| 国产视频一区在线观看一区免费| 亚洲免费成人av电影| 久久久噜噜噜久噜久久| 亚洲精品在线视频观看| 久久免费偷拍视频| 国产精品夜夜夜| av成人福利| 女主播福利一区| 亚洲欧美日韩另类| 欧美日韩一区二区三区四区五区 | 正在播放亚洲一区| 欧美激情精品久久久久久黑人 | 香蕉久久国产| 国产精品99免费看 | 久久免费视频网| 国产在线视频欧美一区二区三区| 亚洲先锋成人| 亚洲色图综合久久|