Verweis auf Thread Object von seiner ID

Wie kann ich auf einen laufenden Thread verweisen, wenn ich die mit diesem Thread verknüpfte ID kenne?

z.B

long threadID = 12342; Thread thread = (What goes here?) getThreadFromId(threadID); //I know this is totally made up 

  • Langzeitbetrieb in onDestroy durchführen
  • Android: java.lang.Twrowable: setStateLocked
  • Wann müssen wir runOnUiThread in Android-Anwendung verwenden?
  • Hauptfaden zu viel Arbeit wegen asynchroner Firebase-Anrufe?
  • Android Multithreading - WaitForGcToComplete nach dem Senden von App auf Hintergrund
  • Ist @Singleton im Dolch 2 Thread sicher?
  • Verbesserung der OpenCV-Leistung Android - schnelle Objektverfolgung
  • Von Thread zu Thread mit GreenRobot EventBus kommunizieren
  • 2 Solutions collect form web for “Verweis auf Thread Object von seiner ID”

    Du hast 2 Möglichkeiten, es zu tun. Beide sind ganz einfach:

    • Alte Möglichkeit: Die Wurzel-Thread-Gruppe erhalten Sie auf Thread.currentThread().getGroup() ..getParent () in loop. Und enumerate(Thread[]) aufrufen enumerate(Thread[])

    • Neuere (langsamer). for (Thread t : Thread.getAllStackTraces().keySet()) if (t.getId()==id)...

    Die erste Methode hat ein kleines Problem, dass aufgrund eines Bugs in ThreadGroup.destroy() eine ThreadGroup überhaupt nichts aufzählen kann.

    Die zweite ist langsamer und hat einen Sicherheitsfehler.

    Sie können folgenden Code verwenden, um den Thread Name zu erhalten (zB möchte ich Namen von Threads bekommen, die in Deadlock sind)

     ThreadMXBean threadMB = ManagementFactory.getThreadMXBean(); long threadIds[] = threadMB.findDeadlockedThreads(); for (long id : threadIds) { System.out.println("The deadLock Thread id is : " + id + " > " + threadMB.getThreadInfo(id).getThreadName()); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.