c/c++语言开发共享创建多个线程后Pthread_create失败

我正在开发一个处理客户端连接的应用程序。 我正在为每个请求生成一个线程,因为会有短任务。 但是,在处理一定数量的连接后,我一直遇到问题。 具体来说,在381个连接之后,pthread_create无法创建新线程。 我知道如果应用程序资源耗尽,或者已经创建了超过PTHREAD_THREADS_MAX个线程,这可能会失败。

奇怪的是,当发生此错误时,前381个线程已经停止。 我没有使用pthread_join来等待这些线程停止,我相信pthreads不要求我以某种方式“停止”线程,如果我错了就纠正我(至少manpage没有提到这个)。 我想也许这可能是在同时产生多个线程时产生的,但是,我已经多次测试过,每次第382个线程创建都失败了。

有谁知道会发生什么? 任何帮助将不胜感激。

提前致谢。

    如果不调用pthread_join或分离线程(通过调用pthread_detach或使用属性在分离状态下创建它),则终止线程使用的资源将永远不会被释放。 这是你的问题。 如果您不需要加入线程,请在创建它们后立即将其分离。

      以上就是c/c++开发分享创建多个线程后Pthread_create失败相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      www.ctvol.com true https://www.ctvol.com/c-cdevelopment/541858.html Article c/c++语言开发共享创建多个线程后Pthread_create失败

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/541858.html

      (0)
      上一篇 2021年1月4日
      下一篇 2021年1月4日

      精彩推荐