Posts

Showing posts from June, 2014

AngularJS - Curso

Image
Hola chavos, les traigo algo que realize recientemente en mi trabajo, un curso de AngularJS ! Espero les sea de utilidad en su aprendizaje. Durante este curso cubro los siguientes puntos: Principios Básicos Manejo de Eventos Básicos Profundizo en algunos aspectos de AngularJS Y algunos Ejemplos avanzados sobre el uso de AngularJS  Bueno chavos eso es todo lo que les traigo hasta ahorita, espero que les haya servido y les haya parecido Interesante. por lo pronto me despido, adiós ^_^/

Java Concurrencia : Barriers (CountDownLatch)

Image
Hola chavos en esta ocasión, les voy a hablar de los Barriers en Java, al igual que mis ultimas entradas, pueden ver mi código al final en un link directo a un repositorio en mi Github. Básicamente "Barriers" es una técnica usada para detener a un grupo de hilos en un punto en especifico. Los Barriers pueden ser usados de diversas maneras: Retrasar el inicio de múltiples hilos hasta que un objeto es inicializado Esperar a que los procesos internos concluyan antes de proseguir con los demas calculos Los Barriers suenan chido hasta ahora, no? pero, en términos mas sencillos, que es un Barrier? simple, supongamos que nos vamos todos de tour a Nueva York, bueno, nuestro guia no puede empezar la explicacion de, digamos la estatua de la libertad, hasta que todos hayamos llegado y tampoco puede terminar el tour cuando a el le plasca, debe de esperar a cumplir con todo lo que se acordó cuando lo contratamos. Bueno chavos basta ya con la teoría, para ver un ejemplo practic

Java Concurrencia : Condition Object (ReentrantLock & Condition)

Image
Hola chavos en esta ocasión les traigo un tema mas sofisticado cuando se trata de programacion concurrente, Condition Object!. Como en mis ultimas entradas, empezare con la teoría y al final les dejare el link a mi Github donde podrán ver un pequeño ejemplo de este método en acción. Este método a diferencia de los pasados no sigue el patrón bridge, sigue el patrón Guarded Suspension. Este patrón es usado cuando se requiere que ambos, un lock y una precondicion se cumplan para ejecutar las operaciones deseadas. Esta condición puede (y en muchos de los casos) ser compleja, para así proteger el contenido a compartir. Mientras que el hilo esta pendiente de que la condición se cumpla, su lock se libera y se "duerme", esperando a que esa condición se cumpla. Una vez que esa condición se cumple, otro hilo le notifica al hilo que se encuentra en espera que la condición se acaba de cumplir, asi que implícitamente el hilo se "despierta" y este gana el lock, durmiendo así

Java Concurrencia : Semaforos (Semaphore)

Image
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 pe

Java Concurrencia : Readers - Writers Lock (ReentrantReadWriteLock)

Image
Ahora chavos les voy a mostrar otro tipo de concurrencia, los Readers - Writers Lock! realmente espero que esto les sirva para sus futuros proyectos debido a los paradigmas asincronos que hoy en dia estan naciendo. Los readers-Writers lock es un mecanismo usualmente usado en contextos donde varios hilos acceden a un mismo modulo. Es decir, los readers-writers lock permiten el acceso a un modulo para mucho hilos de lectura, pero solo a 1 de escritura al mimos tiempo, concurrentes. Esto nos sirve para mejorar el rendimiento, dibido a que permite leer a diversos hilos, pero solo a 1 le va a permitir escribir y si a esto le aunamos el hardware con el que hoy en dia se cuenta, multi nucleos, y multi procesadores, esto nos permite realizar calculos en un tiempo significanetemente menor. Un ejemplo sencillo de esto son los debates presidenciales, donde muchas personas pueden escuchar (leer) al mismo tiempo pero solo 1 puede hablar (escribir). Al igual que el metodo pasado, este tipo

Java Concurrencia : Mutual Exclusion Locks (BlockingQueue)

Image
Hola chavos, en esta ocasion les voy a empezar a compartir un poco de lo que estoy aprendiendo en mi especialidad, Sistemas Concurrentes con Java, Les voy a mostrar los distintos metodos y clases a usar,, empezare con un poco de teoría y al final podrán ver un link a mi Github donde verán un pequeño ejemplo de cada método, por lo pronto hoy empezare con Java Reentrantlock! Java Reentrantlock es una clase usada en java para manejar la concurrencia. El uso de esta clase se da en módulos críticos, solo un hilo puede acceder a dicho modulo critico, para entender esto mejor utilizaremos el ejemplo del baño de un avión: "Solo una persona puede estar usando el baño a la vez, si el baño se encuentra vacante entonces solo UNA persona puede entrar, cuando la persona entra al baño su estado cambia a ocupado, y mientras el baño se encuentre ocupado las demás personas deben de esperar; finalmente cuando la persona sale del baño el baño cambia de ocupado a vacante y ahora otra persona que