Differenza tra demone e thread figlio? [chiuso]

-3

Secondo la mia conoscenza, il thread daemon è un thread che viene eseguito in background (thread a bassa priorità) e anche un thread figlio viene eseguito in background quando il thread padre esegue foreground, quindi dove si trova la differenza tra un figlio e un thread daemon?

È in caso di java e puoi spiegare anche altri linguaggi.

    
posta Anji 09.01.2013 - 12:31
fonte

2 risposte

2

Java non usa il termine child thread.

Un thread è un thread daemon o un thread non daemon.

Un thread non daemon deve essere arrestato manualmente e mantiene la VM in esecuzione finché il thread è in esecuzione.

Un thread daemon non può mantenere la VM in esecuzione. Quando la macchina virtuale interrompe tutti i thread daemon, smetterà di funzionare.

Puoi raggruppare i thread insieme a ThreadGroup . I gruppi possono essere raggruppati insieme, il che significa che puoi avere un genitore e un figlio ThreadGroup s.

La priorità di un thread non ha nulla a che fare con i concetti spiegati di thread. Qualsiasi thread può avere priorità.

Per altri linguaggi / OS non posso dire come ci sono i concetti.

    
risposta data 09.01.2013 - 13:01
fonte
1

Demoni (o Demoni) e genitore | i concetti di threading dei bambini sono ortogonali tra loro. In altre parole, la base della tua domanda è sbagliata. Allo stesso modo, le priorità possono essere assegnate a processi e thread, ma la priorità è ortogonale alla definizione di un demone, un thread principale o uno stato di thread secondario.

Un'applicazione è un programma che è stato scritto e diventa un processo quando viene eseguito. Un'applicazione è costituita da un processo e zero, uno o più thread. La voce di Wikipedia su Thread fa un buon lavoro di spiegazione della differenza tra un processo e un thread.

    I processi
  • sono in genere indipendenti, mentre i thread esistono come sottoinsiemi di un processo
  • I processi
  • contengono molte più informazioni di stato rispetto ai thread, mentre più thread all'interno di un processo condividono lo stato del processo oltre a memoria e altre risorse
  • I processi
  • hanno spazi di indirizzi separati, mentre i thread condividono lo spazio degli indirizzi
  • I processi
  • interagiscono solo attraverso i meccanismi di comunicazione tra processi forniti dal sistema
  • il passaggio da un contesto all'altro tra i thread nello stesso processo è in genere più rapido del passaggio di contesto tra i processi.

Un paio di note -

    I thread
  1. possono o non possono condividere lo stesso spazio indirizzo, dipende dal sistema operativo.
  2. prendi il commento sul cambio di contesto con un pizzico di sale - questo sarà dipendente dal SO e dal chipset.

"Processo" e "discussione" sono talvolta usati in modo intercambiabile nelle conversazioni. È normale chiamare il processo "thread principale" anche se questo non è tecnicamente corretto poiché si tratta di un processo. Qualsiasi thread che genera thread aggiuntivi verrebbe considerato anche come thread padre.

Un daemon è un processo o un'applicazione in background, generalmente senza elementi interattivi, ma non è un requisito difficile. A un demone può essere assegnata una priorità, non solo una priorità bassa. Oltre al processo, un demone potrebbe avere alcuni thread figli associati.

Tutti questi termini sono indipendenti dal linguaggio di programmazione utilizzato per scrivere l'applicazione. Alcune lingue offrono un supporto migliore per i thread rispetto alle altre lingue.

    
risposta data 09.01.2013 - 17:22
fonte

Leggi altre domande sui tag