Progaramacion java

Páginas: 14 (3363 palabras) Publicado: 22 de septiembre de 2010
Tutorial de Threads

Programación multihebra
by Scheme the API man © 2000 (jmrequena@larural.es)

¿Qué es la programación multihebra?
Podemos definir la programación multihebra o multihilo como un estilo de ejecucion en el que se conmuta entre distintas partes del código de un mismo programa durante la ejecución.A cada una de estas partes individuales y atómicas(no divisibles) se les da elnombre de Threads.Los threads-traducidos como hilos,hebras o contextos de ejecución- son espacios de codigo que la JVM ejecutará de forma simultanea en una maquina multiprocesador y de forma conmutada en maquina de un solo procesador,este es,la ejecución de los threads se realizará asignando un determinado quantum o espacio de tiempo a cada uno de los threads. La motivación inicial que dió lugar aeste tipo de programación es la solución de problemas que conllevan la necesidad de estar ejecutando simultaneamente o pseudo-simultaneamente dos tareas al mismo tiempo por el mismo programa,como por ejemplo en el caso de un sistema de control climatico de invernaderos que periodicamente ha de consultar el estado de una serie de sensores repartidos por el complejo.Una primera aproximación a esteproblema podría ser el realizar un bucle continuo que consultara dentro del mismo proceso el estado de los sensores de forma secuencial,esto es uno tras otro,pero si se trata de sistemas criticos en los que los fallos no se pueden tolerar o bien el tiempo de respuesta en esencial podria darse el caso de que se activara un sensor justo despues de que el bucle lo hubiera comprobado con lo que esesensor tendria que esperar a que se comprobaran el resto para ser atendido por el programa,con el consiguiente retraso de la respuesta.Otra posibilidad es la ejecución simultanea de multiples procesos,cada uno de los cuales se encargaría de controlar un sensor individualmente pero esta aproximación adolece de un fallo grave,en cualquier contexto la conmutación o cambio entre procesos resulta unatarea extredamente lenta y pesada por lo que el rendimiento del sistema se degradaría.Es en este punto donde cobran sentido los hilos:los hilos son procesos ligeros en el sentido de que cada uno posee su propia pila y conjunto de registros del procesador pero un espacio de direccionamiento compatido,esto es una memoria que puede ser compartida por varios hilos del mismo proceso simultaneamente.Laconmutacion entre hilos es tremendamente mas rapida que la conmutacion entre procesos por lo que la alternancia de hilos podría ser una solucion mucho mas eficiente en el problema del sistema de control climatico del invernadero.Inicialmente tendriamos un solo proceso que se encargaría de la gestión inicial de los hilos,de crear y destruir estos hilos y de dar respuesta a las situaciones dealarma,mientras que los hilos lanzados por este proceso atenderían a cada uno de los sensores. La programación multihilo es una herramienta poderosa y peligrosa.En maquinas monoprocesador,mediante su uso se consigue un mayor rendimiento efectivo pero un menor rendimiento computacional.Esto basicamente quiere decir que el sistema esta ocioso una menor parte del tiempo pero que el numero de instruccionesutiles ejecutadas por unidad de
1 de 11

Tutorial de Threads

tiempo desciende ya que al propio proceso de los hilos hay que sumar el tiempo de conmutacion entre ellos.

¿Donde puedo realizar programación multihilo en Java?
En la actualidad casi todos los sistemas operativos proporcian servicios para la programación multihilo pero el tratamiento por parte de la JVM es algo distinto a como lorealizan estos sistemas.Todas las JVM de todas las plataforma proporcionan hilos de ejecución aunque el sistema operatico subyacente no los proporcione,en este caso el JVM simula ese comportamiento.Sin embargo incluso en sistemas que si admiten este tipo de programación hasta la versión del JDK 1.2 los hilos de la JVM no se correspondían a hilos nativos del sistema(excepto en su versión para...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Java
  • Java
  • Java
  • java
  • JAVA
  • java
  • java
  • javiera

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS