linux C语言 pthread多线程11错误 卡死

pthread新手坑,跟着网上直接写,pthread_create然后就让函数跑,跑完了直接在函数里面return。这个流程,小测试,一点毛病都没有,跑得贼溜。

但是客户拿去压测七天后,出现卡死的现象。分析后,发现printf内容出来了,但是thread的httppost数据没有发到服务器,怀疑是线程问题。

开始查资料以为调用return返回有问题,还特意去查了pthread_exit,甚至问了少头发大佬。说是return是在线程创建函数直接返回,而pthread_exit是可以在任何子函数中直接线程返回到调用,那这就不是引起问题的原因。

再查,查到一个资源回收的问题。贫瘠的C语言啊,这样开线程,可以跑,但是用完不会回收,就那样僵死在那里,资源占用着。等线程表满了,再新建线程,就直接撂挑子返回11了。为此还特意写了demo测试。

管杀不管埋的操作,创建了32753个线程后,再创建,就直接返回11了。

然后在pthread_create后面增加了pthread_detach调用,测试就不一样了,线程数量级再多两个都没问题,然后可以手动停止测试了。

做事还是要做全套,调用流程要走全啊。

pthread_create-》pthread_detach(pthread_join)-》pthread_exit

相关推荐

  1. FreeRTOS线

    2024-06-15 14:40:04       12 阅读
  2. iOS ------ 线 pthread,NSThread

    2024-06-15 14:40:04       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 14:40:04       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 14:40:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 14:40:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 14:40:04       20 阅读

热门阅读

  1. 在远程服务器上安装虚拟环境

    2024-06-15 14:40:04       7 阅读
  2. PostgreSQL的视图pg_rules

    2024-06-15 14:40:04       7 阅读
  3. Python语言例题集(015)

    2024-06-15 14:40:04       9 阅读
  4. Qt/C++中的异步编程

    2024-06-15 14:40:04       10 阅读
  5. 鸿蒙 如何将base64的图片保存到相册

    2024-06-15 14:40:04       9 阅读
  6. blender

    blender

    2024-06-15 14:40:04      5 阅读
  7. 难or易?c++

    2024-06-15 14:40:04       7 阅读
  8. web前端黑马下载:探索学习资源的海洋

    2024-06-15 14:40:04       7 阅读
  9. Gobject tutorial 二

    2024-06-15 14:40:04       4 阅读