HILOS

Páginas: 7 (1539 palabras) Publicado: 28 de febrero de 2014
HILOS
Conceptos basicos.
Un hilo -algunas veces llamado contexto de ejecución o proceso ligero- es un flujo de control secuencial dentro de un programa. Un único hilo es similar a un programa secuencial; es decir, tiene un comienzo, una secuencia y un final, además en cualquier momento durante la ejecución existe un sólo punto de ejecución. Sin embargo, un hilo no es un programa; no puedecorrer por sí mismo, corre dentro de un programa. Un hilo por si mismo no nos ofrece nada nuevo. Es la habilidad de ejecutar varios hilos dentro de un programa lo que ofrece algo nuevo y útil; ya que cada uno de estos hilos puede ejecutar tareas distintas.
El ambiente de desarrollo de Java soporta programación con múltiples hilos por medio de bibliotecas, el lenguaje mismo y con la ayuda del sistemade tiempo de ejecución. A continuación se listan las características más importantes con las que cuenta Java para soportar el uso de hilos.

El método run
Antes que nada, necesitamos proveer a cada hilo con un método run para indicarle qué debe hacer. El código de este método implementa el comportamiento en ejecución del hilo y puede hacer, prácticamente cualquier cosa capaz de ser codificadaen Java.

Existen dos técnicas para proveer un método run para un hilo:
Haciendo una subclase de Thread y sobrecargando run
Implementando la interface Runnable. Thread es una clase, pero Runnable es una interfase.
Por convención para seleccionar cual técnica vamos a usar seguiremos la siguiente regla: ``Si las clases que elaboras deben ser subclases de otras clases (un caso común esApplet), entonces debe usarse Runnable.''
Una vez que el hilo hace algo, podemos manejar el ciclo de vida de un hilo: como crear y arrancar un hilo, algunas cosas especiales que podemos hacer mientras se ejecuta y como detenerlo.

Manejo de Prioridades de los hilos
La gran ventaja que ofrecen los hilos (como se puede inferir de lo anteriormente expuesto) es que corren de manera concurrente.Conceptualmente, esto es cierto, pero en la práctica generalmente no es posible. La mayoría de las computadoras tienen un sólo procesador, por lo tanto los hilos corren uno a la vez de forma tal que proveen la ilusión de concurrencia (esto es llamado scheduling). El sistema de ejecución de Java soporta un algoritmo determinístico (para el scheduler) llamado fixed priority scheduling. Este algoritmoasigna tiempo de ejecución a un hilo basado en su prioridad relativa a los demás hilos que están listos para ejecutarse.
Cuando se crea un nuevo hilo, hereda su prioridad del hilo que lo crea, ésta puede ser modificada con el método setPriority. Las prioridades son enteros entre MIN_PRIORITY y MAX_PRIORITY (constantes definidas en la clase Thread). Entre más alto el entero, más alta la prioridad. Sidos hilos con la misma prioridad están esperando que el CPU los ejecute, el scheduler escoge uno utilizando round-robin (i.e. escoge de forma aleatoria, se supone que round-robin ofrece iguales probabilidades de ejecución a los hilos en cuestión). El hilo seleccionado para ejecución, corre hasta que alguna de estas condiciones sea verdadera:
Un hilo con mayor prioridad está listo paraejecución.
El hilo cede su lugar (yields), o su método run termina.
En sistemas que soportan rebanadas de tiempo (time slicing), su tiempo asignado ha expirado.
En ese momento el segundo hilo es atendido por el CPU y así sucesivamente hasta que el intérprete termina.

Sincronización.
Cuando tenemos varios hilos, muchas veces deseamos que éstos pueden compartir datos, por lo tanto, esindispensable saber sincronizar sus actividades; esto también nos permitirá evitar inanición y abrazos mortales.
En muchas situaciones, hilos que se ejecutan concurrentemente comparten información y deben considerar el estado de las actividades de los demás hilos.
Los segmentos de código dentro de un programa que accedan el mismo objeto desde hilos separados (concurrentes) se llaman regiones críticas....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Hilos
  • hila
  • hilos
  • Hila
  • Hilos
  • HILO
  • hila
  • Hilos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS