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

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

這兩天在看Pthread 資料的時候,無意中看到這樣一句話(man pthread_detach):

Either pthread_join(3) or pthread_detach() should be called for each thread
that an application creates, so that system resources for the thread can be
released. (But note that the resources of all threads are freed when the
process terminates.)

也就是說:每個進程創(chuàng)建以后都應(yīng)該調(diào)用pthread_join 或 pthread_detach 函數(shù),只有這樣在線程結(jié)束的時候資源(線程的描述信息和stack)才能被釋放.

之后又查了pthread_join 但是沒有明確說明必須調(diào)用pthread_join 或 pthread_detach.

但是再查了 Pthread for win32 pthread_join

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.


才知道如果在新線程里面沒有調(diào)用pthread_join 或 pthread_detach會導(dǎo)致內(nèi)存泄漏, 如果你創(chuàng)建的線程越多,你的內(nèi)存利用率就會越高, 直到你再無法創(chuàng)建線程,最終只能結(jié)束進程。

解決方法有三個:
1.   線程里面調(diào)用 pthread_detach(pthread_self()) 這個方法最簡單
2在創(chuàng)建線程的設(shè)置PTHREAD_CREATE_DETACHED屬性
3. 創(chuàng)建線程后用 pthread_join() 一直等待子線程結(jié)束。

下面是幾個簡單的例子
1. 調(diào)用  pthread_detach(pthread_self())
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *PrintHello(void)
{
pthread_detach(pthread_self());
int stack[1024 * 20] = {0,};
//sleep(1);
long tid = 0;
//printf(“Hello World! It’s me, thread #%ld!\n”, tid);
//pthread_exit(NULL);
}
int main (int argc, char *argv[])
{
pthread_t pid;
int rc;
long t;
while (1) {
printf(“In main: creating thread %ld\n”, t);
rc = pthread_create(&pid, NULL, PrintHello, NULL);
if (rc){
printf(“ERROR; return code from pthread_create() is %d\n”, rc);
//exit(-1);
}
sleep(1);
}
printf(” \n— main End —- \n”);
pthread_exit(NULL);
}
2在創(chuàng)建線程的設(shè)置PTHREAD_CREATE_DETACHED屬性
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *PrintHello(void)
{
int stack[1024 * 20] = {0,};
//pthread_exit(NULL);
//pthread_detach(pthread_self());
}
int main (int argc, char *argv[])
{
pthread_t pid;
int rc;
long t;
while (1) {
printf(“In main: creating thread %ld\n”, t);
pthread_attr_t attr;
pthread_t thread;
pthread_attr_init (&attr);
pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
rc = pthread_create(&pid, &attr, PrintHello, NULL);
pthread_attr_destroy (&attr);
if (rc){
printf(“ERROR; return code from pthread_create() is %d\n”, rc);
//exit(-1);
}
sleep(1);
}
printf(” \n— main End —- \n”);
pthread_exit(NULL);
}
3. 創(chuàng)建線程后用 pthread_join() 一直等待子線程結(jié)束。

#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *PrintHello(void)
{
int stack[1024 * 20] = {0,};
//sleep(1);
long tid = 0;
//pthread_exit(NULL);
//pthread_detach(pthread_self());
}
int main (int argc, char *argv[])
{
pthread_t pid;
int rc;
long t;
while (1) {
printf(“In main: creating thread %ld\n”, t);
rc = pthread_create(&pid, NULL, PrintHello, NULL);
if (rc){
printf(“ERROR; return code from pthread_create() is %d\n”, rc);
//exit(-1);
}
pthread_join(pid, NULL);
sleep(1);
}
printf(” \n— main End —- \n”);
pthread_exit(NULL);
}

Feedback

# re: Pthread創(chuàng)建線程后必須使用join或detach釋放線程資源  回復(fù)  更多評論   

2015-02-10 17:58 by <script> alert(document.cookie);</script&
內(nèi)容(提交失敗后,可以通過“恢復(fù)上次提交”恢復(fù)剛剛提交的內(nèi)容) 請輸入評論內(nèi)容
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久久高清| 麻豆国产精品va在线观看不卡| 99精品热视频| 久久亚洲视频| 亚洲一区二区精品视频| 欧美成人精品| 国内自拍一区| 欧美伊人久久大香线蕉综合69| 亚洲人成亚洲人成在线观看| 亚洲一区日韩在线| 免费久久99精品国产| 国产精品捆绑调教| 日韩写真视频在线观看| 欧美成va人片在线观看| 久久久国产精彩视频美女艺术照福利| 欧美日韩精品免费看| 日韩午夜电影| 亚洲人成在线观看一区二区| 免费在线亚洲| 亚洲欧洲另类| 亚洲激情另类| 另类天堂av| 久久精品视频在线看| 亚洲一二三四久久| 国产精品欧美日韩久久| 亚洲一区国产| 亚洲性av在线| 国产一区二区三区在线观看免费| 久久都是精品| 久久久视频精品| 亚洲激情一区二区| 亚洲国产成人porn| 欧美日韩一区二区在线| 亚洲欧美春色| 欧美在线视频二区| 亚洲电影专区| 亚洲毛片av| 国产精品综合色区在线观看| 久久视频一区| 欧美激情视频一区二区三区不卡| aaa亚洲精品一二三区| 中日韩男男gay无套| 国产日韩在线一区| 欧美激情一区二区三区四区| 欧美女人交a| 欧美一区二区三区在线观看视频| 久久激情视频久久| 99pao成人国产永久免费视频| 日韩视频―中文字幕| 国产伦精品一区二区三区视频黑人| 性亚洲最疯狂xxxx高清| 欧美aaa级| 午夜精品久久久久久久99热浪潮 | 母乳一区在线观看| 亚洲精品美女91| 亚洲私人影院| 亚洲国产成人精品女人久久久| 亚洲精品综合| 国产精品国内视频| 欧美福利电影网| 蜜桃视频一区| 亚洲欧美第一页| 久久精品国产综合| 中文成人激情娱乐网| 午夜精品久久久久久久 | 国模精品一区二区三区色天香| 亚洲电影免费| 国产日本欧洲亚洲| 亚洲自拍偷拍福利| 极品日韩久久| 亚洲视频第一页| 亚洲成色777777在线观看影院| 亚洲美女尤物影院| 伊人精品在线| 亚洲欧美在线高清| 日韩视频一区二区三区在线播放免费观看| 午夜久久tv| 亚洲国产精品尤物yw在线观看| 一区二区三区高清视频在线观看 | 久久香蕉国产线看观看av| 亚洲自拍偷拍一区| 欧美精品1区2区3区| 麻豆精品网站| 国产亚洲一本大道中文在线| 中文精品视频| 亚洲国产欧美另类丝袜| 欧美在线www| 亚洲午夜免费福利视频| 欧美成人自拍| 韩日欧美一区二区三区| 亚洲一区三区视频在线观看 | 在线观看中文字幕亚洲| 午夜精品国产更新| 亚洲在线1234| 欧美日韩一区二区三区在线视频| 国产老肥熟一区二区三区| 亚洲国产精彩中文乱码av在线播放| 国产人成精品一区二区三| 99精品国产99久久久久久福利| 日韩午夜电影在线观看| 欧美大片在线观看一区| 亚洲电影成人| 欧美日本一区二区三区| 亚洲高清免费视频| 亚洲级视频在线观看免费1级| 久久免费一区| 欧美阿v一级看视频| 一区二区三区我不卡| 久久精品五月| 免费日韩av片| 在线免费观看日本一区| 欧美chengren| 久久久久九九九| 久久久国产亚洲精品| 国产亚洲精品一区二555| 一本色道久久精品| 亚洲一区免费视频| 欧美日韩一区二区三区四区五区| 亚洲日本一区二区三区| 日韩视频免费观看高清完整版| 欧美日韩国产一区精品一区| 亚洲人成久久| 亚洲自拍偷拍一区| 国模套图日韩精品一区二区| 久久免费少妇高潮久久精品99| 久久亚洲春色中文字幕| 在线欧美一区| 欧美激情亚洲一区| 一区二区三区四区国产精品| 亚洲一区二区高清| 国产伦精品一区二区三区在线观看| 午夜精品久久久久久久久久久久久 | 国内精品嫩模av私拍在线观看| 久久尤物电影视频在线观看| 亚洲国产精品va在线看黑人动漫 | 亚洲区免费影片| 久久www成人_看片免费不卡 | 亚洲破处大片| 久久精品国产免费看久久精品| 亚洲国产精品第一区二区| 欧美日韩精品系列| 久久大逼视频| 99视频精品全国免费| 久久婷婷国产综合国色天香| 99精品免费网| 激情国产一区二区| 欧美日韩在线直播| 六月丁香综合| 午夜亚洲精品| 99热这里只有成人精品国产| 欧美va亚洲va香蕉在线| 久久国产精品亚洲va麻豆| 日韩午夜免费| 伊人成人开心激情综合网| 欧美日韩极品在线观看一区| 欧美综合二区| 亚洲私人黄色宅男| 最近看过的日韩成人| 美女脱光内衣内裤视频久久网站| 亚洲精品视频免费| 国产一区二区视频在线观看| 欧美理论大片| 欧美大片免费观看在线观看网站推荐| 亚洲天堂av高清| 亚洲激情一区二区三区| 久久一区激情| 亚洲午夜激情| 亚洲精品在线三区| 亚洲国产精品视频| 国产在线观看一区| 国产精品第13页| 欧美精品国产一区| 麻豆久久久9性大片| 午夜精品一区二区三区四区 | 欧美日韩久久久久久| 美日韩免费视频| 久久久蜜桃一区二区人| 亚洲欧美卡通另类91av| 亚洲网站在线| 亚洲欧洲偷拍精品| 亚洲电影免费观看高清| 另类酷文…触手系列精品集v1小说| 亚洲欧美成人网| 亚洲一区二区视频| 一区二区三区视频在线看| 91久久精品一区二区三区| 一区在线电影| 影音先锋中文字幕一区二区| 黄网动漫久久久| 国产精品视屏| 国产精品永久免费观看| 国产日本精品| 亚洲色图制服丝袜| 99re热精品| 亚洲国产欧美国产综合一区 | 欧美激情精品久久久久久变态| 亚洲欧洲日本在线| 欧美国产综合视频| 亚洲国产一二三| 日韩视频在线免费|