如何查找最初启动线程的位置
假设我有一个应用程序可以生成多个线程,如果需要做任务…所以没什么特别的。 我使用Eclipse编写和调试Java应用程序。 一个线程(让它称之为“异步任务”)在离开run()方法后立即重新生成(所以有bug并且我想找到这种行为的原因)。
我的问题是,如果我使用eclipse IDE(调试透视图…)暂停这个线程“异步任务”有没有办法找出这个线程最初启动的位置(例如使用Debug视图或任何其他)? 因为我想知道是谁产生了这个post(没有进行文本搜索或类似的东西)。
有没有一个很好的方法来获取这些信息?
我会在Thread.start()
设置一个断点并启用一个条件
每当启动名为“async task”的线程时,条件将被计算为true,并且调用start方法的线程将被暂停。 然后你可以在堆栈跟踪中看到来电的来源。
由于debug
将挂起整个JVM
无法使用debuger
检查新thread
是否启动。
您可以放置一些logs
并检查threads
在那里的工作方式。