Suscribirse al Feed
28Dic

Las inocentadas

27Dic

[código] Problema Productor-Consumidor: sincronización de Hilos en Java (3)

El siguiente ejemplo demuestra simultaneamente el problema del Productor-Consumidor, con y sin sincronismo. No es más que otro programa de referencia, y este no lo voy a explicar mucho ya que en las anteriores entradas (productor-consumidor sin sincronismo - productor-consumidor con sincronismo) ya lo he hecho.

Descarcar proyecto (lo hice con Eclipse)

Un saludo!
Espero que les sea de ayuda!

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.
27Dic

[código] Problema Productor-Consumidor: sincronización de Hilos en Java (2)

Continuando en el tema de los hilos … En el siguiente ejemplo veremos el uso e implementación de la sincronización de hilos en Java. De nuevo vamos a tratar el ejemplo del Productor-Consumidor (antes lo hicimos sin sincronización), esta vez con los subprocesos sincronizados (es recomendable que te hayas leido la anterior entrada).

La clase Bufer es la misma de la del ejemplo anterior:


// La interfaz Bufer especifica los métodos llamados por el Productor y el Consumidor.
public interface Bufer {
   public void establecer( int valor );  // colocar valor en Bufer
   public int obtener();              // devolver valor de Bufer
}

Como segunda medida crearemos la clase BuferSincronizado.java, que implementa la clase Bufer.java, y en la cual se declaran los métodos estableces(int) y obtener() con el prefijo synchronized.

Lo que se hace en estos casos es poner algo así como un semáforo. Para ello usamos una variable llamada cuentaBuferOcupado, que tomará dos posibles valores: 1 si el buffer está ocupado, y 0 si el buffer está vacio.

Fijemonos entonces en el método establecer, en donde hay un ciclo que se repite siempre y cuando el bufer esté lleno (while(cuentaBuferOcupado ==1)). Si esta cnodición se cumple, se muestra un mensaje y se invoca al método wait(), para poner al subproceso en espera.

De lo contrario, es decir, cuando el bufer está vacio, se escribe un dato en el bufer y se actualiza la variable cuentaBuferOcupado (indicando que el bufer está ahora ocupado). Posteriormente se usa el método notify(), el cual avisa a los subprocesos que están en espera que pase al estado “listo”.

De igual forma, el método obtener(), usa la variable cuentaBuferOcupado para determinar cuando Leer el resto de la entrada…

Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.
26Dic

Tira Linux Hispano: Ubuntu

Casi nunca coloco entradas de tiras… pero esta si me ha hecho reir…

Ubuntu

No tengo nada contra Ubuntu… pero si que soy fiel a Debian.

Tengan en cuenta que es solo una tira cómica… nada de Flamewares, por favor

24Dic

Feliz Navidad

tux_noel.jpg

Feliz navidad a todos los bloggers (menos a superpiwi de UbuntuLife… el sabe porque), a mis lectores, a mis amigos, y a mis enemigos que se metan un    buen tiempo con sus familiares y la pasen bien.

Un abrazo!

24Dic

El número 10 de la revista Essentia Libre

La revista colombiana de las tecnologías y el conocimiento libre, ya va por el número 10. El contenido de este último número es:

  • Anibal Monsalve, Un colombiano con mucho Debian.
  • ¿Qué es Hardware Libre?.
  • Desde el sur, entre Mates y Pingüinos: Mi primer robot.
  • DeStar, Interfaz web simple y potente para la PBX IP Asterisk.
  • Conocimiento emancipado para el desarrollo endógeno.
  • Tips y curiosidades: Desde OpenOffice hacia PDF.
  • I Congreso Internacional de software libre.
  • Aniversario Ubuntu-ve.

Puedes ver más información de la revista en: http://www.aclibre.org/essentia-libre.gsol

Descarga directa

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS