系统用的Cenos, 为了便于看内存,线程栈大小是默认的10M
现象,,,,程序启动时内存 2.7M ,,,不停的按键,创建线程,,,出现几百M的高峰,,,,之后等线程全结束,,内存停留在 50M,,永远不会回到 2.7M的原始状态
下面是简化的代码,实际代码更复杂,泄露更严重,到了不能忍受的程度,,
在各位大神眼里就是不值一提的小毛病吧,,,求指点,,,
#include "test.h"
void* ThreadBody(void* arg)
{
//pthread_detach(pthread_self());
usleep(1000*1000*5);
return (void*)0;
}
int main()
{
char msg[64] = {0};
pthread_t id;
pthread_attr_t a;
while(1)
{
printf("\n:");
scanf("%s",msg);
pthread_attr_init(&a);
pthread_attr_setdetachstate(&a,PTHREAD_CREATE_DETACHED);
pthread_create(&id,&a,ThreadBody,NULL);
//pthread_join(id,NULL);
//pthread_detach(id);
pthread_attr_destroy(&a);
}
return 0;
}