2013-01-11 45 views
4

一個簡單的問題,我今天調試我的應用程序,第一次我問自己一個問題。在Eclipse調試模式中,您有很多選項和值,但其中一個視圖讓我在調試時稍微思考一下。圖片上的所有這些Threads,它們應該是什麼意思?線程正在我的應用程序上運行?線程,我開始/停止或他們更像是在系統級別,它控制我的應用程序。擁有那麼多線程是否正常?或者我做錯了什麼?Android的Eclipse調試模式 - 線程

Threads

非常感謝任何信息/幫助!

回答

5

這些是駐留在VM實例內的所有線程。在運行期間的任何特定時間運行或等待多個是正常的。無論何時產生作業或定時器,都會創建一個線程,或者從一個池中獲取線程。在你的屏幕截圖中,很多可能空閒的池線程也可見。 另外,想一想UI編程 - 顯示線程通常是一個獨立的線程,其他非UI線程會調用事件,因爲UI線程上的長時間運行似乎會凍結整個應用程序。

編輯: 爲了澄清,並非所有這些線程都由您精心調用。有些是由虛擬機本身啓動的,有些是由您可能使用的某個框架或庫開始的,有些是由您自己啓動的 - 其中通常所謂的「主」線程最爲突出。

EDIT2: 您也可以在任何時間暫停Debug視圖中給定的線程並檢查其當前堆棧跟蹤。這可能會爲您提供線索,瞭解所有這些線程在做什麼。很有可能,他們正在等待某個對象(某個池調度員的請求),或者在一個空的阻塞隊列上輪詢或類似的事情。

此致敬禮, h。