我有一个 C++ 应用程序没有调用pthread_join
并且有 O(运行时间)线程。我的问题是 - 这将如何影响服务器任务的运行状况?在 C++ 任务崩溃或无法启动新线程之前,是否有固定数量的线程?这会表现为错误代码pthread_create
吗?它只是泄漏内存还是会减慢其余应用程序的处理时间?
线程正在完成(顶级函数正在返回),只是没有被pthread_join
编辑。
我有一个 C++ 应用程序没有调用pthread_join
并且有 O(运行时间)线程。我的问题是 - 这将如何影响服务器任务的运行状况?在 C++ 任务崩溃或无法启动新线程之前,是否有固定数量的线程?这会表现为错误代码pthread_create
吗?它只是泄漏内存还是会减慢其余应用程序的处理时间?
线程正在完成(顶级函数正在返回),只是没有被pthread_join
编辑。
POSIX 手册说pthread_create
可以返回EAGAIN
:
系统缺乏创建另一个线程所需的资源,或者 系统对进程 {} 中的线程总数施加的限制
PTHREAD_THREADS_MAX
将被超出。
一个简单的解决方法是使用pthread_detach
或使用属性和标记分离的线程pthread_attr_setdetachstate
。然后当他们死时,他们只是被收集起来。