2017-02-15 5 views
-1

Я знаю и использовал доступный ресурс here для автоматического обнаружения взаимоблокировок в Java.Как обнаружить взаимоблокировки программно в Android?

ThreadMXBean bean = ManagementFactory.getThreadMXBean(); 

    long ids[] = bean.findMonitorDeadlockedThreads(); 

    if(ids != null) 
    { 
     ThreadInfo threadInfo[] = bean.getThreadInfo(ids); 

     for (ThreadInfo threadInfo1 : threadInfo) 
     { 
      System.out.println(threadInfo1.getThreadId()); //Prints the ID of deadlocked thread 

      System.out.println(threadInfo1.getThreadName()); //Prints the name of deadlocked thread 

      System.out.println(threadInfo1.getLockName()); //Prints the string representation of an object for which thread has entered into deadlock. 

      System.out.println(threadInfo1.getLockOwnerId()); //Prints the ID of thread which currently owns the object lock 

      System.out.println(threadInfo1.getLockOwnerName()); //Prints name of the thread which currently owns the object lock. 
     } 
    } 
    else 
    { 
     System.out.println("No Deadlocked Threads"); 
    } 

Приведенный выше код определяет и печатает тупиковую нить и соответствующую информацию. Я попробовал то же самое в Android Studio и обнаружил, что Android не поддерживает это. Есть ли эквивалент тому в андроиде?

ответ

2

ThreadMXBean не является частью платформы Android. Этот вопрос уже присутствует здесь Android finding a deadlock

+0

Итак, нет простого способа! Спасибо чувак! Я много искал в googled, но не мог найти решения для этого, теперь я знаю, почему. – Feruchemist947