线程不处理任何请求(多线程应用程序中需要帮助)

时间:2010-03-10 13:59:36

标签: c multithreading pthreads

我在多线程应用程序中工作,应用程序在处理请求时遇到一些问题。 当我继续加载多线程应用程序时,它在一段时间内工作正常。一段时间后它无法处理任何请求。在这种情况下键入此命令时,

ps -eLF | grep multithread

所有线程都是这样显示的,我想理解这个“13:45?”这个问号(?)究竟是什么意思?

root 15818 8838 15833 0 1036 2731192 137308 4 13:45? 00:00:02多线程
根15818 8838 15834 0 1036 2731192 137308 4 13:45? 00:00:02多线程
根15818 8838 15835 0 1036 2731192 137308 4 13:45? 00:00:01多线程
根15818 8838 15836 0 1036 2731192 137308 4 13:45? 00:00:00多线程
根15818 8838 15837 0 1036 2731192 137308 1 13:45? 00:00:11多线程
根15818 8838 15838 0 1036 2731192 137308 2 13:45? 00:00:00多线程
根15818 8838 15839 0 1036 2731192 137308 3 13:45? 00:00:00多线程
根15818 8838 15840 0 1036 2731192 137308 2 13:45? 00:00:10多线程
根15818 8838 15841 0 1036 2731192 137308 2 13:45? 00:00:12多线程
根15818 8838 15842 0 1036 2731192 137308 3 13:45? 00:00:06多线程
根15818 8838 15843 0 1036 2731192 137308 2 13:45? 00:00:01多线程
根15818 8838 15844 0 1036 2731192 137308 4 13:45? 00:00:02多线程
根15818 8838 15845 0 1036 2731192 137308 5 13:45? 00:00:13多线程
根15818 8838 15846 0 1036 2731192 137308 4 13:45? 00:00:01多线程
根15818 8838 15847 0 1036 2731192 137308 4 13:45? 00:00:00多线程
根15818 8838 15848 0 1036 2731192 137308 4 13:45? 00:00:01多线程
根15818 8838 15849 0 1036 2731192 137308 4 13:45? 00:00:07多线程
根15818 8838 15850 0 1036 2731192 137308 2 13:45? 00:00:00多线程
根15818 8838 15851 0 1036 2731192 137308 4 13:45? 00:00:03多线程
根15818 8838 15852 0 1036 2731192 137308 2 13:45? 00:00:06多线程

2 个答案:

答案 0 :(得分:1)

“?”只是意味着进程没有“控制TTY”,这意味着他们基本上都是作为守护进程运行。

由于你不了解你的程序是什么,它写的是什么语言,或它应该做什么,所以很难提供更多的帮助: - )

答案 1 :(得分:0)

使用(-g)上的调试符号构建,然后使用gdb附加到进程ID,例如:

gdb multithread
att 15818

在gdb中,您可以使用“thread apply all where”来获取每个线程所在位置的回溯。这应该告诉你他们在等什么。