28Dic
Esta bien que sea el día de los inocentes… pero esto sino lo cree nadie:
Feliz día de los inocentes!
27Dic
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
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
Casi nunca coloco entradas de tiras… pero esta si me ha hecho reir…

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