title: What are these threads which are spwaned when a Java application begins its execution?
body: <p>I have created a simple Java application which has a JFrame and few JButtons. When I tried to inspect the java application using JVMTI I found that though I did not create any explicit threads there were lot of them spawned. </p>
  
  <p>I could find the following threads:</p>
  
  <ul>
  <li>DestroyJavaVM </li>
  <li>AWT-EventQueue-0</li>
  <li>AWT-Shutdown </li>
  <li>AWT-XAWT- Daemon Thread</li>
  <li>Java2D Disposer- Daemon Thread</li>
  <li>Thread-0- Daemon Thread [Created by the JVMTI Agent] </li>
  <li>Signal Dispatcher- Daemon Thread</li>
  <li>Finalize- Daemon Thread</li>
  <li>Reference Handler- Daemon Thread</li>
  </ul>
  
  <p>Most of them were in Runnable state. Can someone tell me the function of these threads?</p>