多线程 怎么在主线程中判断子线程是否出现卡死 求思路

多线程 如何在主线程中判断子线程是否出现卡死 求思路?
多线程 如何在主线程中判断子线程是否出现卡死 ,如果出现异常卡死 ,就要重启子线程!注:线程卡死并不代表线程执行完了 ,所以用判断线程是否执行完的函数式行不通的。 求高人指点?!

------解决方案--------------------
卡死是死循环还是什么?
可以让 线程 定时为自己的一个flast:Tdatetime赋值:=now;
主线程检测线程的flast与now相差如果超过指定5分钟,就是需要杀掉重启线程
------解决方案--------------------
不知道你了解不了解单片机中的看门狗的原理,单片机一死机,狗会自动重启单片机。
原理:
    工作中一直喂狗,一但长时间狗没有进食,狗就会认为单片机死机了。

你可以声明一个全局变量 I : Integer ,主线程一直 inc(i),子线程负责 i := 0 ;一但I > N ,就可以认为线程已经死了。
 
------解决方案--------------------
对于高质量的程序,这种做法是欠妥的,线程的死是有原因的,如果你认为他“死”了,强行结束线程,带来不可预料的后果。

线程应该由自己结束而不是别的线程。如果你不知道为什么卡死,那么也应该有执行线程自己做异常处理。然后结束。