c++ - 漏线的症状

标签 c++ c multithreading pthreads memory-leaks

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

线程正在结束(顶层函数正在返回),只是没有被pthread_join

最佳答案

POSIX 手册说 pthread_create可以返回 EAGAIN:

The system lacked the necessary resources to create another thread, or the system-imposed limit on the total number of threads in a process {PTHREAD_THREADS_MAX} would be exceeded.

一个简单的修复方法是使用 pthread_detach 标记已分离的线程或者使用属性和 pthread_attr_setdetachstate。然后当它们死去时,它们就会被收集起来。

关于c++ - 漏线的症状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873519/

相关文章:

c++ - 为什么这不会编译以及如何实现才能编译?

c - 从 C 中的数组中删除重复值

c - C语言类型转换时的指针概念

java - 适用于非线程安全代码的执行器

Android VideoView setVideoURI 阻塞 UI 线程

c++ - QGraphicsView 可能的错误?

c++ - 调用函数时出错

c++ - 未存储返回值时,std::async 不会产生新线程

c++ - 添加两个 float 时出现意外输出

java - 停止 DatagramSocket 线程