2013-01-11 44 views
4

一个简单的问题,我今天调试我的应用程序,第一次我问自己一个问题。在Eclipse调试模式中,您有很多选项和值,但其中一个视图让我在调试时稍微思考一下。图片上的所有这些Threads,它们应该是什么意思?线程正在我的应用程序上运行?线程,我开始/停止或他们更像是在系统级别,它控制我的应用程序。拥有那么多线程是否正常?或者我做错了什么?Android的Eclipse调试模式 - 线程

Threads

非常感谢任何信息/帮助!

回答

5

这些是驻留在VM实例内的所有线程。在运行期间的任何特定时间运行或等待多个是正常的。无论何时产生作业或定时器,都会创建一个线程,或者从一个池中获取线程。在你的屏幕截图中,很多可能空闲的池线程也可见。 另外,想一想UI编程 - 显示线程通常是一个独立的线程,其他非UI线程会调用事件,因为UI线程上的长时间运行似乎会冻结整个应用程序。

编辑: 为了澄清,并非所有这些线程都由您精心调用。有些是由虚拟机本身启动的,有些是由您可能使用的某个框架或库开始的,有些是由您自己启动的 - 其中通常所谓的“主”线程最为突出。

EDIT2: 您也可以在任何时间暂停Debug视图中给定的线程并检查其当前堆栈跟踪。这可能会为您提供线索,了解所有这些线程在做什么。很有可能,他们正在等待某个对象(某个池调度员的请求),或者在一个空的阻塞队列上轮询或类似的事情。

此致敬礼, h。