Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [JAVA]Attesa di un thread già terminato

    Salve a tutti, ho un dubbio riguardo i thread in java.

    Ho realizzato un'applicazione che starta un thread la cui durata è esattamente di un secondo.
    Nel momento in cui questo termina (me ne rendo conto tramite uan variabile condivisa) l'applicazione deve fare partire un nuovo thread uguale, ma prima di fare questo chiamo un join sul thread appena terminato in modo da liberare lo zombie ed evitare che il sistema vada outOfMemory.

    Nonostante ciò dopo alcuni secondi di esecuzione le prestazioni dell'applicazione calano sensibilmente, perdendo tutto il tempo nell'aspettare thread già morti

    Non capisco a cosa può essere dovuto questo comportamento ci sono altre cose da fare per eliminare un thread zombie in java?

    grazie ciao ciao

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA]Attesa di un thread già terminato

    Originariamente inviato da doraemon83
    Ho realizzato un'applicazione che starta un thread la cui durata è esattamente di un secondo.
    Nessuno potrà mai garantire la durata esatta di un thread.

    Originariamente inviato da doraemon83
    Nel momento in cui questo termina (me ne rendo conto tramite uan variabile condivisa) l'applicazione deve fare partire un nuovo thread uguale, ma prima di fare questo chiamo un join sul thread appena terminato in modo da liberare lo zombie ed evitare che il sistema vada outOfMemory.
    Quando il metodo run() è terminato, il thread entra nello stato di "dead". Non è più alive, cioè non è più un thread di esecuzione. Esiste però ancora l'oggetto Thread, se è referenziato da altre parti. Appena non sarà più referenziato da alcun live thread, sarà eleggibile per il g.c.
    join() serve solo per attendere la terminazione di un thread, cioè che vada nello stato di "dead".

    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.