2013-05-26 18 views
6

Un thread si elimina automaticamente e recupera dati inutili dopo l'esecuzione o continua a esistere e consuma memoria anche dopo aver completato il metodo run()?I thread vengono automaticamente eliminati dopo che il metodo run() viene chiuso in Java?

Ad esempio:

Class A{ 
    public void somemethod() 
    { 
    while(true) 
    new ThreadClass().start(); 
    } 

    public class ThreadClass extends Thread{ 
     public ThreadClass() 
     {} 
     @Override 
     public void run() {......} 
    } 
} 

voglio chiarire se questa discussione sarà automaticamente rimosso dalla memoria, o ha bisogno di essere fatto in modo esplicito.

+1

noti che si sono incoraggiati a usare 'Task's invece di usare direttamente le discussioni. Entrambi vengono recuperati dopo che sono stati utilizzati, proprio come qualsiasi altro oggetto Java è veramente. –

+0

@owlstead: vuoi dire AsyncTask? – Rick77

+0

Può essere un possibile duplicato di: http://stackoverflow.com/questions/2423284/java-thread-garbage-collected-or-not – awsome

risposta

8

Ciò avverrà automaticamente, ad esempio la memoria verrà rilasciata automaticamente una volta terminato il thread con il suo metodo di esecuzione.

1

I thread esistono solo fino alla fine del loro metodo di esecuzione, dopo di che sono resi idonei per la garbage collection.

Se è necessaria una soluzione in cui la memoria è limitata, è possibile prendere in considerazione un ExecutorService. Questo gestirà i thread per te e ti permetterà di concentrarti sulla logica piuttosto che gestire i thread e la memoria.

0

I thread sono automaticamente raccolti dopo il completamento del metodo run, quindi non è necessario farlo esplicitamente.

0

I thread saranno raccolti dopo che il loro metodo di esecuzione è stato completato. L'eccezione notevole a questo è quando si utilizza il debugger di Android. Il debugger di Android preverrà la garbage collection sugli oggetti di cui è a conoscenza, inclusi i thread che sono finiti in esecuzione.

Why do threads leak on Android?

Problemi correlati