Quali sono queste le discussioni che sono spwaned quando un'applicazione Java inizia la sua esecuzione?

StackOverflow https://stackoverflow.com/questions/2239186

  •  19-09-2019
  •  | 
  •  

Domanda

Ho creato una semplice applicazione Java che ha un JFrame e pochi JButtons. Quando ho provato a controllare l'applicazione java utilizzando JVMTI ho scoperto che anche se non ho creato alcun discussioni esplicite c'erano molti di loro deposto le uova.

sono riuscito a trovare i seguenti thread:

  • DestroyJavaVM
  • AWT-EventQueue-0
  • AWT-Shutdown
  • AWT-XAWT- Daemon Discussione
  • Java2D Disposer- Daemon Discussione
  • Thread-0- Daemon Discussione [Creato dal JVMTI Agente]
  • segnale dispatcher- Daemon Discussione
  • Finalize- Daemon Discussione
  • Riferimento Handler- Daemon Discussione

La maggior parte di loro erano in stato Runnable. Qualcuno può dirmi la funzione di queste discussioni?

È stato utile?

Soluzione

Questi fili sono utilizzati dalle librerie sottostanti per gestire i widget, esposizione, eventi ad anello, e altre idraulico che è necessario per l'applicazione grafica.

Un'applicazione GUI di solito ha un sacco di parti in movimento, e se avete notato non dovete scrivere in modo esplicito alcun codice per gestire queste parti (ad esempio, l'aggiornamento dello schermo, o disegnare un pulsante, o la manipolazione di un mouse movimento). E 'è questo insieme di thread in background che sono responsabili della gestione da queste parti, e renderlo il più semplice possibile per mettere a fuoco la logica dell'applicazione.

Queste discussioni sono generati dalle librerie che si utilizza (ad esempio, AWT, Swing, ecc) e di solito pulire se stessi (e le risorse che gestiscono) fino alla cessazione.

Altri suggerimenti

Vi posso dire uno, e indovinare tre ...

  • AWT-EventQueue-0

Questa è la GUI / Awt / thread Swing. Tutto ciò per iscritto al GUI deve essere in esecuzione su questo thread! A volte, se penso che ci sia un punto in cui un altro thread potrebbe aver scritto alla GUI, andrò al punto in cui penso che la contesa potrebbe accadere e affermare che il nome del thread corrente corrisponde a "AWT-EventQueue-0" .

Vorrei davvero che Sun ha rilasciato una versione di "Debug" della libreria che ha asserito utilizzo filettatura corretto in tutte le componenti - avrebbe risparmiato un sacco di mal di testa e salvato Java di avere una pessima REP per schiantarsi GUI quando è in realtà le persone che non capiscono su questo thread.

Queste sono probabilmente tutti legati al garbage collector filettato:

  • Java2D Disposer- Daemon Discussione
  • Finalize- Daemon Discussione
  • Riferimento Handler- Daemon Discussione
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top