【问题标题】:Symptoms of thread leak螺纹泄漏的症状
【发布时间】:2012-06-08 01:35:55
【问题描述】:

我有一个 C++ 应用程序,它没有调用 pthread_join 并且有 O(运行时间)线程。我的问题是 - 这将如何影响服务器任务的运行状况?在 C++ 任务崩溃或无法启动新线程之前,是否有固定数量的线程?这会在pthread_create 中显示为错误代码吗?它只是泄漏内存还是会减慢其余应用程序的处理时间?

线程正在完成(顶级函数正在返回),只是没有被pthread_join'ed。

【问题讨论】:

  • 如果不出意外,2^(8*sizeof(pthread_t)) 线程的基本限制是通过一个简单的计数参数...

标签: c++ c multithreading pthreads memory-leaks


【解决方案1】:

POSIX 手册说pthread_create 可以返回EAGAIN

系统缺少创建另一个线程所需的资源,或者 系统对进程中线程总数的限制 将超过 {PTHREAD_THREADS_MAX}

一个简单的解决方法是使用pthread_detach 或使用属性和pthread_attr_setdetachstate 标记分离的线程。然后当他们死去时,他们就被收集起来了。

【讨论】:

  • 很有趣,但这就是我在 grep 上的 /usr/include 上找到的全部内容:/usr/include/x86_64-linux-gnu/bits/local_lim.h:#undef PTHREAD_THREADS_MAX
猜你喜欢
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多