我有一个未调用 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
。然后当它们死去时,它们就会被收集起来。
我是一名优秀的程序员,十分优秀!