You are on page 1of 2

DANIEL FELIPE FLOREZ MURCIA

02270013
ING JUAN CARLOS DIAZ
Java.util.c!cu""#!t
Este paquete provee clases tiles comnmente usadas para sincronizacin de datos,
donde incluye clases como:
S#$a%&"# ' Es una herramienta clsica de concurrencia.
C(clic)a"i#"' Es un punto de sincronizacin de multplices vas y reseteable.
Cu!tD*!Latc&: Es una utilidad para bloquear hasta que una seal o numero sea
dado por algn evento o condicin.
Echange: !ermite que dos hilos intercambien ob"etos en un punto de reunin, esto
puede ser muy til en diseo de pipelines.
S#$a%&"#: Es un constructor clsico para el control de concurrencia. Es bsicamente
un seguro con un contador a"ustado a este, seme"ante a un seguro de inter#ase$ este
puede ser usado para prevenir el acceso si el seguro es lo admite. %a clase &emaphore
'sema#oro( mantiene una rastro de los permisos otorgados. )ada acquire'( bloquea si es
necesario hasta que su permiso es otorgado, y entonces lo toma.
)ada release'( aade un permiso. *ay que notar que no se usan permisos de ob"etos, el
semaphore mantiene un conteo de los nmeros permitidos en los correspondientes actos.
+n sem#oro con un contador de uno puede servir como un seguro de eclusin mutua.
)a""i#"' Esto es una ayuda de sincronizacin que permite mantener un grupo de
hilamientos a esperar hasta alcanzar un punto comn. %a inter#ase para esta clase es la
)yclic,arrier, llamada cclica porque en esta se puede re usar despu-s de que un hilo ha
sido liberado para correr, esto es muy util para programar en #orma paralela.
Cu!tD*! Latc&' +n latch es una condicin de inicio con valor boleano #also, pero
una vez cambia a verdadero este cambia para siempre como verdadero, la clase de
)ount.o/n %atch sirve como una sincronizacin de mas que permita a uno o mas hilos
esperar alguna operacin que inicie estos hilos a t-rminos de otro, esta herramienta de
sincronizacin es similar a la de barrera en el sentido de que esta provee un m-todo que
permite a los hilos esperar una condicin, pero es di#erente en que la condicin de
espera no se re#iere al numero de hilos que estn esperando, en vez del constructor, el
latch no se puede resetear y luego intentar disminuir el contador pues no traba"a.
E+c&a!,#": !ermite a dos hilos el intercambio de ob"etos en un punto de reunin, y
puede ser usado para el diseo de pipelines, cada hilo presenta algn ob"eto en la
entrada en el m-todo Echange'(, y recibe el ob"eto presentado de otro hilo como
retorno. )omo un e"emplo, considere la clsico problema consumidor0productor '1
entidades que comparten un canal($ una descripcin de este problema y una simple
solucin es usar la t-cnica de built0in syncronization'/ait'(and noti#y'((.
+n e"emplo de la clase "ava.util
try { // Consumer thread
while (currentBuffer != null) {
takeFromBuffer(currentBuffer);
if (currentBuffer.empty())
currentBuffer = echan!er.echan!e(currentBuffer);
"
" catch (#nterrupted$ception e) {
// ... handle ...
"
try { // %roducer thread
while (currentBuffer != null) {
add&oBuffer(currentBuffer);
if (currentBuffer.full())
currentBuffer = echan!er.echan!e(currentBuffer);
"
" catch (#nterrupted$ception e) {
// ... handle ...
2