Java Concurrencia : Semaforos (Semaphore)

Hola chavos, en esta ocasión tocare el tema de los semáforos en Java, así es Java cuenta con una clase llamada semaphore, la cual es usada para sincronizar y calendarizar la interacción entre múltiples hilos.

Para explicar esto mejor pongamos un ejemplo sencillo, están tratando de descargar múltiples imagenes de Internet, pero si intentamos descargar todas a la vez, nuestro programa truena! Es en ese momento que decidimos utilizar un semáforo para limitar el cargar y asegurar el desempeño de nuestra aplicacion, es decir, limitamos el numero de descargas a 5 (es un numero que se me vino a la mente), para que nuestra aplicacion no truene. Estas 5 imagenes tendrán el semáforo en verde, mientras que las demás estarán en rojo, prohibiendo así su descarga hasta que una se descargue y permita el cambio en otro semáforo:

Existen 2 tipos de semáforos en Java:
  • El semáforo de conteo, el cual permite un numero arbitrario de hilos ejecutarse a la vez y
  • El semáforo Binario, el cual solo permite o 1 o 0, esto quiere decir que o pasa 1 o no pasa nadie
Los semáforos en Java son raramente usados en Android debido a que son tediosos y propensos a errores como:
  • Poner un semáforo en "verde" y nunca volverlo a colocar en "rojo"
  • Y por el lado contrario, poner el semáforo en "rojo" y nunca cambiarlo a "verde"
 Por estos y algunos detallitos mas los semáforos son mas usados en Pruebas unitarias. pueden ver un ejemplo practico de la clase semaphore de Java en mi Github. por lo pronto me despido y espero que esto les haya servido, adiós ^_^/

Comments

  1. EL código es muy bueno y funciona, pero si estuviera comentado seria más entendible, de todas formas muchas gracias me sirvió mucho

    ReplyDelete

Post a Comment

Popular posts from this blog

Juego de Gato Usando HTML, JavaScript y CSS

AfterEffects - Quitar el Fondo de un Video Forma 1: KeyLight

Crear un nuevo Libro de Excel con VBA ES