我在多线程应用程序中工作,应用程序在处理请求时遇到一些问题。 当我继续加载多线程应用程序时,它在一段时间内工作正常。一段时间后它无法处理任何请求。在这种情况下键入此命令时,
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多线程
答案 0 :(得分:1)
“?”只是意味着进程没有“控制TTY”,这意味着他们基本上都是作为守护进程运行。
由于你不了解你的程序是什么,它写的是什么语言,或它应该做什么,所以很难提供更多的帮助: - )
答案 1 :(得分:0)
使用(-g)上的调试符号构建,然后使用gdb附加到进程ID,例如:
gdb multithread
att 15818
在gdb中,您可以使用“thread apply all where”来获取每个线程所在位置的回溯。这应该告诉你他们在等什么。