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

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 閱讀(3156) 評論(2)  編輯 收藏 引用 所屬分類: Linux_Coding

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

常用鏈接

留言簿(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>
            国产精品视频| 久久精品在这里| 久久久欧美精品sm网站| 亚洲图片欧洲图片av| 免费在线观看一区二区| 久久精彩视频| 国产精品亚洲成人| 一区二区三区视频在线观看| 亚洲国产欧美日韩| 久久久久亚洲综合| 久久久久五月天| 国产亚洲在线| 欧美一区二区视频网站| 欧美亚洲免费高清在线观看| 欧美日韩一区二区在线观看| 亚洲精品小视频| 日韩视频二区| 欧美激情一区二区在线| 亚洲高清免费视频| 亚洲国产成人av| 蜜臀av国产精品久久久久| 免费欧美在线| 亚洲国产精品精华液2区45| 久久久国产精品亚洲一区| 久久午夜精品一区二区| 狠狠爱www人成狠狠爱综合网| 性欧美激情精品| 久久久亚洲国产美女国产盗摄| 国产午夜精品一区二区三区欧美 | 亚洲欧美中文另类| 国产精品久久7| 亚洲嫩草精品久久| 久久久亚洲成人| 亚洲高清av| 欧美极品色图| 亚洲色图制服丝袜| 久久精品一区二区三区中文字幕| 国产婷婷成人久久av免费高清| 午夜精品免费在线| 噜噜噜在线观看免费视频日韩| 亚洲第一精品福利| 欧美女同在线视频| 亚洲婷婷在线| 久久综合国产精品台湾中文娱乐网| 雨宫琴音一区二区在线| 欧美激情中文字幕在线| 亚洲一区二区三区乱码aⅴ| 久久狠狠亚洲综合| 亚洲精品免费一二三区| 国产精品成人在线观看| 欧美一区二区视频在线观看2020| 欧美mv日韩mv国产网站app| 一本久道久久综合婷婷鲸鱼| 国产精品亚洲网站| 麻豆成人av| 亚洲午夜免费福利视频| 欧美/亚洲一区| 中文久久精品| 尤物网精品视频| 国产精品久久久久久超碰| 久久精品卡一| 亚洲伦理在线免费看| 久久网站热最新地址| 中国女人久久久| 在线观看日产精品| 国产精品福利影院| 欧美成年人网站| 亚洲女同精品视频| 91久久久久久| 久久亚洲不卡| 欧美淫片网站| 正在播放欧美视频| 亚洲成人在线| 国产亚洲欧美aaaa| 欧美午夜理伦三级在线观看| 久久在线91| 欧美一区二区三区免费观看视频 | 国产精品久99| 欧美黄污视频| 久久综合伊人| 久久精彩免费视频| 亚洲淫性视频| 99视频一区| 亚洲人成网站777色婷婷| 久久一区二区三区四区| 香蕉久久夜色精品| 亚洲小少妇裸体bbw| 亚洲精选国产| 亚洲精品中文字幕女同| 在线欧美视频| 精品51国产黑色丝袜高跟鞋| 国产精品人人爽人人做我的可爱 | 你懂的亚洲视频| 久久精品一区二区三区中文字幕 | 亚洲一区二区三区视频| 日韩亚洲欧美高清| 亚洲人成网站在线观看播放| 欧美夫妇交换俱乐部在线观看| 久久青草欧美一区二区三区| 久久国产手机看片| 欧美在线日韩精品| 欧美一区亚洲二区| 欧美一区二区福利在线| 午夜欧美电影在线观看| 欧美一区二区精品在线| 亚洲欧美精品在线| 亚洲欧美日本国产有色| 午夜精品成人在线视频| 亚洲欧美日韩国产中文| 性一交一乱一区二区洋洋av| 亚洲欧美国产精品桃花| 午夜精品www| 久久精品国产免费观看| 久久天天综合| 欧美大成色www永久网站婷| 欧美激情亚洲| 日韩小视频在线观看| 在线综合欧美| 欧美在线黄色| 蜜臀av在线播放一区二区三区| 欧美国产视频一区二区| 欧美日韩久久不卡| 国产精品视频不卡| 国内精品久久久久久久影视麻豆 | 免费观看成人| 亚洲黄色天堂| 亚洲一区二区视频在线| 性伦欧美刺激片在线观看| 久久久久久久综合狠狠综合| 免费黄网站欧美| 欧美深夜影院| 国内精品久久久久影院 日本资源| 一区二区三区自拍| 亚洲美女黄网| 欧美一区二区三区在线观看 | 欧美大片免费观看| 亚洲精选一区二区| 欧美一激情一区二区三区| 久久亚洲国产成人| 欧美色网在线| 在线观看日韩| 亚洲欧美综合精品久久成人| 久久野战av| 在线中文字幕一区| 麻豆精品在线视频| 国产精品视频yy9299一区| 亚洲高清123| 欧美一级大片在线观看| 亚洲国产99| 欧美一区二区三区免费大片| 欧美激情中文字幕在线| 国产午夜一区二区三区| 99pao成人国产永久免费视频| 欧美在线啊v| 99re66热这里只有精品3直播 | 日韩天堂在线视频| 久久精品视频导航| 亚洲精品一区二区在线观看| 久久精品99| 国产精品亚洲视频| 99精品99久久久久久宅男| 久久免费精品日本久久中文字幕| 亚洲免费大片| 欧美成人一区二区三区片免费| 国产亚洲va综合人人澡精品| 中日韩男男gay无套| 欧美韩日一区二区| 久久精品首页| 国产日韩在线看| 午夜精品久久久久久99热| 亚洲区一区二区三区| 欧美成人网在线| 亚洲国产美女精品久久久久∴| 久久精品欧美| 性欧美xxxx大乳国产app| 国产精品第13页| 亚洲一区在线直播| 99re6热只有精品免费观看| 欧美成人国产va精品日本一级| 国产亚洲精品激情久久| 欧美一区二区视频在线观看| 一本综合精品| 欧美网站在线观看| 亚洲一区中文| 亚洲天堂av在线免费| 欧美午夜精品伦理| 亚洲女性喷水在线观看一区| 99精品视频一区| 国产精品久久久久aaaa樱花| 亚洲自拍偷拍一区| 亚洲一区二区在线免费观看视频 | 亚洲精品一区二区三区福利| 欧美成人xxx| 免费黄网站欧美| 亚洲精品美女91| 99爱精品视频| 国产精品免费看片| 久久精品av麻豆的观看方式| 欧美一级专区| 亚洲国产成人av|