Todos los programadores est�n familiarizados con la escritura de programas secuenciales.
T� probablemente hayas escrito un programa que muestre "Hello World!", o que ordene una lista de nombres, o que calcule la lista de n�meros primos. Estos son programas secuenciales: cada uno tiene un principio, una secuencia de ejecuci�n y un final. En un momento dado durante la ejecuci�n del programa hay un s�lo punto de ejecuci�n.
Un Thread es similar a los programas secuenciales descritos arriba: un s�lo thread tambi�n tiene un principio, un final, una secuencia, y en un momento dado durante el tiempo de ejecuci�n del thread s�lo hay un punto de ejecuci�n. Sin embargo, un thread por si mismo no es un programa. No puede ejecutarse por s� mismo, pero si con un programa.
Definici�n:
Un thread es un flujo secuencial de control dentro de un programa. |
No hay nada nuevo en el concepto de un s�lo thread. Pero el juego real alrededor de los threads no est� sobre los threads secuenciales solitarios, sino sobre la posibilidad de que un solo programa ejecute varios threads a la vez y que realicen diferentes tareas.
El navegador HotJava es un ejemplo de una aplicaci�n multi-thread. Dentro del navegador HotJava puedes moverte por la p�gina mientras bajas un applet o una imagen, se ejecuta una animaci�n o escuchas un sonido, imprimes la p�gina en segundo plano mientras descargas una nueva p�gina, o ves c�mo los tres algoritmos de ordenaci�n alcanzan la meta.
Algunos textos utilizan el nombre proceso de poco peso en lugar de thread.
Un thread es similar a un proceso real en el que un thread y un programa en ejecuci�n son un s�lo flujo secuencial de control. Sin embargo, un thread se considera un proceso de poco peso porque se ejecuta dentro del contexto de un programa completo y se aprovecha de los recursos asignados por ese programa y del entorno de �ste.
Como un flujo secuencial de control, un thread debe conseguir algunos de sus propios recursos dentro de un programa en ejecuci�n. (Debe tener su propia pila de ejecuci�n y contador de programa, por ejemplo). El c�digo que se ejecuta dentro de un Thread trabaja s�lo en �ste contexto. As�, algunos texto utilizan el t�rmino contexto de ejecuci�n como un sin�nimo para los threads.