线程做事情到一半的时候死掉如何处理

大_猫 2014-08-13 08:37:50
有100个活动线程,通过线程池管理。
现在有一个线程运行到一半的时候死掉了。也就是做事情做到一半的时候死掉了。
该线程关系到整个用户,故不能简单粗暴地放弃该线程。
请问现在该怎么处理?

我开始想的是新建一个线程,重复做该线程做的事情。但是被无情的鄙视了。

然后我在想是不是互斥锁的问题。还望各位指教啊。
...全文
228 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2014-08-13
  • 打赏
  • 举报
回复
先解决为什么死掉的问题吧?
mlqxj35674 2014-08-13
  • 打赏
  • 举报
回复
还是避免死掉的问题吧,新开一个,且不说被拒绝,同样有死掉的可能。
浩南_哥 2014-08-13
  • 打赏
  • 举报
回复
你那个线程那么重要,怎么会死掉呢?
阿源是少年 2014-08-13
  • 打赏
  • 举报
回复
引用 5 楼 Idle_ 的回复:
真死还是假死? 真死线程会被系统回收,那么你需要重新创建一个线程。假死是线程陷入无限等待或无限循环,那么你需要TerminateThread杀掉它再新建一个。不管哪种死法你需要先找到原因,不然新建的线程还会死。
如果你做了线程同步,就需要解锁,不然会死,这是主要原因,不光是这个,如果你的线程里面做了阻塞操作, 而没有超时逻辑,也会导致线程死在那里
大_猫 2014-08-13
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
先解决为什么死掉的问题吧?
引用 4 楼 pcradio 的回复:
首当其冲是解决死掉的问题,而不是考虑其他
的确是先要解决死掉问题。一位大神告诉我答案就两个字:解锁。 线程死掉的原因很多,是不是大部分线程死掉都是因为这个?
阿呆_ 2014-08-13
  • 打赏
  • 举报
回复
真死还是假死? 真死线程会被系统回收,那么你需要重新创建一个线程。假死是线程陷入无限等待或无限循环,那么你需要TerminateThread杀掉它再新建一个。不管哪种死法你需要先找到原因,不然新建的线程还会死。
阿源是少年 2014-08-13
  • 打赏
  • 举报
回复
首当其冲是解决死掉的问题,而不是考虑其他

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧