¿Qué se debe hacer con un subproceso después de que su método run()
termine de ejecutarse? ¿Hay alguna limpieza necesaria para un subproceso en Java?¿Cómo limpio un hilo después de que finaliza su método de ejecución?
Respuesta
A menos que el trabajo del subproceso haya utilizado algunos recursos no administrados (secuencias de red, archivos, etc.) - en cuyo caso debería limpiarlo por sí mismo; no hay nada que deba hacer.
Tenga en cuenta que mantener una referencia al objeto Thread
que representa el subproceso no mantendrá con vida el subproceso del sistema operativo subyacente.
No es necesario que, hilo termina, una vez run
método termina Es ejecución
Nopes. El hilo se ejecutará y morirá por sí solo y obtendrá basura recolectada.
No, no es necesario. Cuando el hilo sale de su método de ejecución, el hilo entra en el estado de salida.
En general, la limpieza se realiza por el recolector de basura. Si los subprocesos usan archivos/sockets, es posible que deba cerrarlos. La mejor práctica es cerrar recursos en el bloque de nivel superior finally
en Thread::run
.
En realidad, necesita limpiar sus datos, y no el hilo.
- 1. Método de ejecución en el hilo principal de otro hilo
- 2. ¿Cómo finaliza el Programador de tareas un trabajo en ejecución?
- 3. ¿Cómo podemos guardar un hilo para la próxima tarea después de su ejecución en java? (Implementación del conjunto de subprocesos)
- 4. python: cómo finalizar un hilo cuando finaliza el programa principal
- 5. ¿Cuándo cerrar la conexión de db en android? Cada vez que finaliza su operación o después de su aplicación, salga
- 6. Java, la ejecución de un método cuando el alcance del objeto finaliza
- 7. cómo ejecutar un hilo después de completar otro hilo
- 8. ¿Cómo puedo ajustar un método para que pueda matar su ejecución si excede un tiempo de espera especificado?
- 9. DoInBackground de AsyncTask comienza su ejecución demasiado tarde después de que AsyncTask :: execute se llame
- 10. ¿Qué es un hilo de trabajo y su diferencia de un hilo que creo?
- 11. Pasar un valor de la actividad al hilo después de que el hilo ya está creado
- 12. Eliminando un hilo daemon solo después de que devuelve
- 13. Interrumpir/matar a un hilo en ejecución
- 14. ¿Cómo saber cuándo EnumWindows finaliza su listado de ventanas?
- 15. ¿Cuándo sale un hilo de su alcance?
- 16. ¿Por qué mi subproceso finaliza inmediatamente después de mostrar un formulario de Windows?
- 17. finaliza una función setTimeout antes de su hora configurada
- 18. vim - Detener el desplazamiento después del primer archivo que finaliza
- 19. ¿El servicio de acceso en ejecución llama a su método?
- 20. ¿Cómo puedo poner un proceso en segundo plano después de su ejecución con CTRL + Z roto?
- 21. ¿Cómo detectar cuando finaliza la aplicación?
- 22. ¿Cómo puedo saber con seguridad si un subproceso de impulso ha salido de su método de ejecución?
- 23. Método de hilo C# ¿devuelve un valor?
- 24. ¿Cómo termino un hilo .NET que tiene su pila de llamadas dañada?
- 25. ¿Cómo hacer que cada método de clase llame a un método específico antes de la ejecución?
- 26. matando un hilo en ejecución en java?
- 27. ¿Cómo hacer un frente de clang limpio?
- 28. En C++ 11, ¿cuál es el punto de un hilo que "no representa un hilo de ejecución"?
- 29. ¿Cómo medir el tiempo de ejecución del hilo de Java?
- 30. Cómo crear un bucle de ejecución pateado solo por performSelector ... ¿llamadas de método?
También vale la pena señalar que un objeto Thread no siempre representa un hilo del sistema operativo, al igual que un objeto File no siempre representa un archivo "real". –
El hilo está creando dinámicamente clases y cargándolas ... ¿eventualmente se agotará la memoria de ClassLoader? Si es así, ¿cómo lo limpiamos? – Stackee007
@ Stackee007: Necesitará crear un ClassLoader separado específicamente para eso, y permitir que (y todas las clases que se crean) sean basura. Sin embargo, no veo cómo esto es particularmente relevante para la pregunta original. –