Escribir Applets

Todo applet se puede ejecutar en varios threads. Los m�todos de dibujo del applet (paint y update) siempre son llamados desde el thread de dibujo y manejo de eventos del AWT. Los threads de los m�todos de eventos principales -- init, start, stop, y destroy -- son llamados desdes la aplicaci�n en la que se est� ejecutando el applet. Pero la aplicaci�n no los llama desde el thread de dibujo y manejo de eventos del AWT.

Muchos navegadores asignan un thread por cada applet que hay en la p�gina, usando este thread para todas las llamadas a los m�todos de eventos principales del applet. Algunos navegadores asignan un grupo de threads para cada applet, para que sea m�s sencillo matar a todos lo threads que pertenecen a un applet en particular. En cualquier caso, no est� garantizado que cada thread que crea alguno de los m�todos de eventos principales del applet pertenezca al mismo grupo de threads.

En la p�gina de ejemplo hay dos applets PrintThread. PrintThread es una versi�n modificada de SimpleApplet que imprime el thread y el grupo de threads desde los que son llamados sus m�todos init, start, stop, destroy, y update. (Realmente, debido a un bug en Netscape Navigator 2.0 para Windows 95/NT, los applet no implementan update. Si no est�s usando un PC que est� ejecutando Netscape Navigator 2.0, deber�as poder ejecutar el ejemplo real.) Aqu� est� el c�digo recortado, y para el ejemplo m�s interesante. Como es habitual, para ver la salida de los m�todos como destroy que son llamados durante la descarga, necesitamos mirar la salida est�ndar. Puedes ver la p�gina Mostrar Diagn�siticos en los Streams de Salida y Error Est�ndars para obtener m�s informaci�n sobre ellos.

Pulsa sobre la imagen para ejecutar el applet...
Nota:

Como algunos viejos navegadores no soportan 1.1, el applet anterior es una versi�n 1.0 (aqu� est� el c�digo 1.0; y aqu� est� el c�digo 1.1). Para ejecutar la versi�n 1.1 del applet puedes ir a la p�gina example-1dot1/PrintThread.html.

Entonces, �por qu� necesitar�a un applet crear y usar sus propios threads? Imagina un applet que realiza alguna inicializaci�n que consume mucho tiempo -- cargar im�genes, por ejemplo -- en su m�todo init. El thread que llama a init no puede hacer nada hasta que init retorne. En algunos navegadores, esto podr�a significar que no se pueda mostrar el applet ni nada hasta que �l haya finalizado su propia incializaci�n. Entonces si el applet est� en la parte superior de la p�gina, por ejemplo, no aparecer� nada en la p�gina hasta el applet haya terminado de inicializarse.

Incluso en navegadores que crean un thread separado para cada applet, tiene sentido poner cualquier tarea que consuma tiempo dentro de un thread creado por el applet, para que el applet pueda realizar otras tareas mientras espera que las tareas que consumen mucho tiempo se completen.

Regla del Pulgar:

Si un applet realiza una tarea que consume mucho tiempo, deber�a crear y usar su propio thread para realizar esa tarea

Normalmente los applets realizan dos tipos de tareas que consumen mucho tiempo. Las tareas que se realizan una s�la vez y las tareas que se realizan repetidamente. La p�gina siguiente nos ofrece ejemplos de ambas.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO