一个简单的问题,我今天正在调试我的应用程序,我第一次问自己一个问题。在 Eclipse 调试模式中,您有很多选项和值,但其中一个视图让我在调试时思考了一下。图片上的所有这些Threads
,它们应该是什么意思?在我的应用程序上运行的线程?我正在启动/停止的线程或者它们更像是系统级别的线程,它控制我的应用程序。有那么多线程是正常的还是我做错了什么?
非常感谢您提供任何类型的信息/帮助!
一个简单的问题,我今天正在调试我的应用程序,我第一次问自己一个问题。在 Eclipse 调试模式中,您有很多选项和值,但其中一个视图让我在调试时思考了一下。图片上的所有这些Threads
,它们应该是什么意思?在我的应用程序上运行的线程?我正在启动/停止的线程或者它们更像是系统级别的线程,它控制我的应用程序。有那么多线程是正常的还是我做错了什么?
非常感谢您提供任何类型的信息/帮助!
这些都是驻留在您的 VM 实例中的所有线程。在运行时的任何给定时间有多个运行或等待是正常的。每当您生成作业或计时器时,都会创建一个线程,或者从池中获取一个线程。在您的屏幕截图中,还可以看到许多可能空闲的池线程。此外,考虑 UI 编程 - Display 线程通常是一个独立线程,在该线程上事件被其他非 UI 线程调用,因为 UI 线程上长时间运行的操作似乎会冻结整个应用程序。
编辑:澄清一下,并非所有这些线程都是您有意识地调用的。有些是由 VM 本身启动的,有些是由您可能正在使用的某个框架或库启动的,还有一些是由您启动的 - 其中通常所谓的“主”线程是最突出的。
EDIT2:您还可以随时在“调试”视图中暂停给定线程并检查其当前堆栈跟踪。这可能会为您提供有关所有这些线程在做什么的线索。很有可能,他们正在等待一个对象(某些池调度程序的礼貌)或轮询一个空的阻塞队列或类似的东西。
最好的问候, h。