mi ensayo
Es un flujo de control secuencial dentro de un programa. Los que hemos trabajado con UNIX estamos acostumbrados a la noción de proceso y a su creación o eliminación(kill). Un thread es, al igual que un proceso, un flujo de control que puede gozar de cierta autonomía (puede tener sus propias estructuras de datos), pero a diferencia de un proceso,diversos threads de una aplicación pueden compartir los mismos datos. A partir de ahora usaremos la expresión hilo como traducción de thread.
Un hilo no puede correr por sí mismo, se ejecutadentro de un programa. Se pueden programar múltiples hilos de ejecución para que corran simultáneamente en el mismo programa. La utilidad de la programación multihilos resulta evidente. Porejemplo, un navegador Web puede descargar un archivo de un sitio, y acceder a otro sitio al mismo tiempo. Si el navegador puede realizar simultáneamente dos tareas, no tendrá que esperar hastaque el archivo haya terminado de descargarse para poder navegar a otro sitio.
Son más frecuentes de lo que parece
El interprete Java (la máquina virtual de Java, JVM o Java VirtualMachine) inicia un conjunto de hilos sin intervención del programador (llamados hilos de utilidad). Ejemplos de hilos producidos por la JVM:
El ejemplo típico se produce a la hora degestionar los mensajes paint() que recibe un applet. La JVM crea un hilo para hacer las llamadas al método paint() del applet.
Otro caso es la ejecución del método main(): la JVM inicia un threadque ejecuta dicho método.
La recolección de basura (garbage collection) que permite liberar memoria también tiene su propio hilo.
También produce hilos cuando se carga una imagen, cuandose reproduce un sonido, etc.
Modos de uso
Puede elegir entre dos técnicas para implementar hilos:
Crear una subclase de java.lang.Thread.
Implementar la interfaz java.lang.Runnable.
Regístrate para leer el documento completo.