linux 长时间while运行,被中止或暂停

RT,怎样恢复被系统中止或暂停的线程呢?我使用pthread_kill(pid,0)去查询线程的状态,线程还存在,就是不行运了。... RT,怎样恢复被系统中止或暂停的线程呢?我使用pthread_kill(pid,0)去查询线程的状态,线程还存在,就是不行运了。 展开
 我来答
ennano
2014-05-08 · TA获得超过1744个赞
知道小有建树答主
回答量:813
采纳率:100%
帮助的人:297万
展开全部
linux系统不可能自行中止或者暂停你的线程,我写过很多服务器程序,都是几个月连续运行的,从来没遇到过这种情况,问题肯定出在你线程内部

是否有可能线程挂起?被信号中断?死锁?信号量卡死?

在线程出问题的时候,用gcore把堆栈信息采集下来,然后用gdb跟踪到具体卡住的线程,看下到底卡在哪里。
追问
怎么查看线程被挂起或中断呢?我没用锁或信号量,只是用bool型去判断。我运行在ARM环境的,只能打印调试啊,每次线程中止的地方都不一样的
追答
ARM下可以用gdb-server配合,PC上用gdb来进行远程调试

ps -efLl 能否看到线程具体停在什么系统调用上吗?
你的线程里面的循环,是否有系统调用,导致这个系统调用被某个信号中断后阻塞?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式