У моей программы, похоже, есть проблема с потоками, не заканчивающимися, и я пытаюсь выяснить, почему.Как рисовать класс текущей нити
Я использую несколько разных классов резьбы и не знаю, какой из них (или, может быть, все) не заканчивается. Я пытался получить текущие потоки и бросить их, чтобы узнать их класс, но он не работает.
Один из классов резьбы:
public class Thread_Searcher extends Thread {
private HttpURLConnection connection;
int RelationValue = 0;
Thread_Searcher getThread_Searcher() {
return this;
}
public void TimePast() {
if (connection != null) {
connection.disconnect();
}
}
}
Пытаясь выяснить, какой класс они принадлежат:
Set<Thread> threadSet = ScannerThread.getAllStackTraces().keySet();
Thread[] threadArray = threadSet.toArray(new Thread[threadSet.size()]);
for (int x = 0; x < threadArray.length; x++) {
try {
System.out.println(this.toString() + " SearchURL " + x);
System.out.println(this.toString() + " " + threadArray[x].isAlive() + " " + threadArray[x].toString());
try {
Thread_Searcher test = (Thread_Searcher) threadArray[x];
System.out.println(this.toString() + " SearchURL " + x + "Thread_Searcher");
} catch (Exception e) {
System.err.println(this.toString() + " SearchURL Thread_Searcher " + e.getMessage());
//CastErrors(e);
}
try {
Thread_LinkScanner test = (Thread_LinkScanner) threadArray[x];
System.out.println(this.toString() + " SearchURL " + x + "Thread_LinkScanner");
System.out.println(this.toString() + " " + x + " " + test.Status);
} catch (Exception e) {
System.err.println(this.toString() + " SearchURL Thread_LinkScanner " + e.getMessage());
//CastErrors(e);
}
try {
Thread_PhraseSearcher test = (Thread_PhraseSearcher) threadArray[x];
System.out.println(this.toString() + " SearchURL " + x + "Thread_PhraseSearcher");
} catch (Exception e) {
System.err.println(this.toString() + " SearchURL Thread_PhraseSearcher " + e.getMessage());
//CastErrors(e);
}
try {
Thread_URLFinder test = (Thread_URLFinder) threadArray[x];
System.out.println(this.toString() + " SearchURL " + x + "Thread_URLFinder");
} catch (Exception e) {
System.err.println(this.toString() + " SearchURL Thread_URLFinder " + e.getMessage());
//CastErrors(e);
}
} catch (Exception e) {
CastErrors(e);
}
}
Приведенный выше код дает мне ниже вывод:
[email protected] SearchURL 0
[email protected] true Thread[Attach Listener,5,system]
[email protected] SearchURL 1
[email protected] true Thread[Thread-23,5,main]
[email protected] SearchURL 2
[email protected] true Thread[Thread-4,5,main]
[email protected] SearchURL 3
[email protected] true Thread[Finalizer,8,system]
[email protected] SearchURL 4
[email protected] true Thread[Thread-19,5,main]
[email protected] SearchURL 5
[email protected] true Thread[TimerQueue,5,system]
[email protected] SearchURL 6
[email protected] true Thread[Thread-8,5,main]
[email protected] SearchURL 7
[email protected] true Thread[Thread-17,5,main]
[email protected] SearchURL 8
[email protected] true Thread[DestroyJavaVM,5,main]
[email protected] SearchURL 9
[email protected] true Thread[Keep-Alive-Timer,8,system]
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
Cont[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.ref.Finalizer$FinalizerThread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.ref.Finalizer$FinalizerThread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.ref.Finalizer$FinalizerThread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.ref.Finalizer$FinalizerThread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 10
[email protected] true Thread[Signal Dispatcher,9,system]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
Control.[email protected] SearchURL 11
[email protected] true Thread[AWT-EventQueue-0,6,main]
[email protected] SearchURL Thread_Searcher java.awt.EventDispatchThread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.awt.EventDispatchThread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.awt.EventDispatchThread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.awt.EventDispatchThread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 12
[email protected] true Thread[AWT-Windows,6,system]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 13
[email protected] true Thread[Thread-12,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 14
[email protected] true Thread[Thread-6,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 15
[email protected] true Thread[AWT-Shutdown,5,system]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 16
[email protected] true Thread[Java2D Disposer,10,system]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 17
[email protected] true Thread[Thread-10,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 18
[email protected] true Thread[Thread-2,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 19
[email protected] true Thread[Thread-21,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 20
[email protected] true Thread[Thread-14,5,main]
[email protected] SearchURL Thread_Searcher java.lang.Thread cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.Thread cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.Thread cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.Thread cannot be cast to Threads.Thread_URLFinder
[email protected] SearchURL 21
[email protected] true Thread[Reference Handler,10,system]
[email protected] SearchURL Thread_Searcher java.lang.ref.Reference$ReferenceHandler cannot be cast to Threads.Thread_Searcher
[email protected] SearchURL Thread_LinkScanner java.lang.ref.Reference$ReferenceHandler cannot be cast to Threads.Thread_LinkScanner
[email protected] SearchURL Thread_PhraseSearcher java.lang.ref.Reference$ReferenceHandler cannot be cast to Threads.Thread_PhraseSearcher
[email protected] SearchURL Thread_URLFinder java.lang.ref.Reference$ReferenceHandler cannot be cast to Threads.Thread_URLFinder
So , как я могу узнать класс работающих потоков?
Что вы подразумеваете под этим? Темы не имеют классов. Нитки выполняют код, который может быть в любом классе. – Kayaman
Теоретически ваш метод * должен * работать, хотя он не хорошо написан. Но по какой-то причине большинство потоков имеют класс 'Thread', а не ваши собственные классы, что говорит о том, что, возможно, вы не начинаете их правильно. Можете ли вы добавить код, который запускает темы на ваш вопрос? – RealSkeptic
Непосредственно: 'threadArray [i] .getClass()' –