디버거 붙여야 스레드 리스팅 볼 수 있는 것도 귀찮고 잘못 만들어진 프로그램들이 스레드 하나 잡고 가사 상태에 빠지는 경우들도 있고 그래서 전체 스레드 제어가 가능하게 기능 추가하고 있다. 그냥 다 찍었더니 출력이 흉악하네..
kraken> thread.stacks
Name: Signal Dispatcher, Status: RUNNABLE
Name: FelixStartLevel, Status: WAITING
java.lang.Object.wait (Object.java:-2)
java.lang.Object.wait (Object.java:485)
org.apache.felix.framework.StartLevelImpl.run (StartLevelImpl.java:242)
java.lang.Thread.run (null:-1)
Name: Reference Handler, Status: WAITING
java.lang.Object.wait (Object.java:-2)
java.lang.Object.wait (Object.java:485)
java.lang.ref.Reference$ReferenceHandler.run (null:-1)
Name: FelixPackageAdmin, Status: WAITING
java.lang.Object.wait (Object.java:-2)
java.lang.Object.wait (Object.java:485)
org.apache.felix.framework.PackageAdminImpl.run (PackageAdminImpl.java:314)
java.lang.Thread.run (null:-1)
Name: Timer-0, Status: TIMED_WAITING
java.lang.Object.wait (Object.java:-2)
java.util.TimerThread.mainLoop (null:-1)
java.util.TimerThread.run (null:-1)
Name: FelixDispatchQueue, Status: WAITING
java.lang.Object.wait (Object.java:-2)
java.lang.Object.wait (Object.java:485)
org.apache.felix.framework.util.EventDispatcher.run (EventDispatcher.java:931)
org.apache.felix.framework.util.EventDispatcher.access$000 (EventDispatcher.java:54)
org.apache.felix.framework.util.EventDispatcher$1.run (EventDispatcher.java:106)
java.lang.Thread.run (null:-1)
Name: Finalizer, Status: WAITING
java.lang.Object.wait (Object.java:-2)
java.lang.ref.ReferenceQueue.remove (null:-1)
java.lang.ref.ReferenceQueue.remove (null:-1)
java.lang.ref.Finalizer$FinalizerThread.run (null:-1)
(...생략)




