2010-03-10 33 views
-1

我正在使用多線程應用程序,應用程序在處理請求時遇到一些問題。 當我在多線程應用程序上加載時,它在一段時間內工作正常。一段時間後它無法處理任何請求。在這種情況下,輸入此命令時,線程不處理任何請求(在多線程應用程序中需要幫助)

ps -eLF | grep multithread

所有線程都是這樣顯示的,我想了解這個「13:45?」這個問號(?)究竟是什麼意思?

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

+0

在逗號後面放一個空格,像這樣,在一段時間後放一個空格。它使得閱讀你的問題變得更容易。 – Kiril 2010-03-10 15:34:47

回答

1

「?」只是意味着進程沒有「控制TTY」,這意味着它們基本上是作爲守護進程運行的。

,因爲你沒有你的計劃是什麼方式什麼,用什麼語言它用,或者是它應該做的,它是一種硬,以提供更多的援助:-)

+0

它使用POSIX線程在RHEL-5的C多線程程序中編寫,我們的進程創建一個用於處理每個請求的新線程。 – Chandu 2010-03-10 14:11:51

0

調試構建上(-g)的符號,然後使用gdb來連接到進程ID,例如:

gdb multithread 
att 15818 

在gdb中,你就可以使用「線程應用全部哪裏」得到的,每一個線程是回溯。這應該告訴你他們在等什麼。