p编程中的pthread内存泄漏

joh*_*han 1 c memory-leaks pthreads

我有下面的代码.

void *timer1_function(void * eit);
pthread_t timer1;
int thread_check1 = 0;

line72: thread_check1 = pthread_create( &timer1, NULL, timer1_function,  NULL);
Run Code Online (Sandbox Code Playgroud)

Valgrind显示下面的输出,并表示存在问题line 72.pthread_create上面的用法有什么问题?

272 bytes in 1 blocks are possibly lost in loss record 2 of 5
  in main in main.c:72
  1: calloc in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so
  2: _dl_allocate_tls in /build/buildd/eglibc-2.15/elf/dl-tls.c:297
  3: pthread_create@@GLIBC_2.2.5 in /build/buildd/eglibc-2.15/nptl/allocatestack.c:571
  4: main in <a href="file:///home/user/Project-build-desktop-Qt_4_8_1_in_PATH__System__Release/../project/main.c:72" >main.c:72</a>
Run Code Online (Sandbox Code Playgroud)

Sha*_*baz 5

创建线程时,可以使用它分配一些内存.清理此内存的任务是通过调用来完成的pthread_join.

在线程退出时不清除此内存的原因是这些数据包含诸如"线程的退出状态"之类的信息,父母可能希望稍后检查这些信息.因此,永远不会join线程意味着永远不会清理那个内存.

未连接线程的概念类似于僵尸进程.