Sincronizacion De Hilos

Páginas: 4 (826 palabras) Publicado: 26 de junio de 2012
Sincronización de Hilos
Tópicos de Programación Avanzados


Sincronización de Hilos
Cuando en un programa tenemos varios hilos corriendo simultáneamente es posible que varios hilos intentenacceder a la vez a un mismo sitio (un fichero, una conexión, un array de datos) y es posible que la operación de uno de ellos entorpezca la del otro. Para evitar estos problemas, hay que sincronizar loshilos. Por ejemplo, si un hilo con vocación de Cervantes escribe en fichero "El Quijote" y el otro con vocación de Shakespeare escribe "Hamlet", al final quedarán todas las letras entremezcladas. Hayque conseguir que uno escriba primero su Quijote y el otro, luego, su Hamlet.
Sincronizar usando un objeto
Imagina que escribimos en un fichero usando una variable fichero de tipo PrintWriter. Paraescribir uno de los hilos hará esto
fichero.println ("En un lugar de la Mancha...");
Mientras que el otro hará esto
fichero.println ("... ser o no ser...");
Si los dos hilos lo hacen a la vez, sinningún tipo de sincronización, el fichero al final puede tener esto
En un... ser lugar de la o no Mancha ser...
Para evitarlo debemos sincronizar los hilos. Cuando un hilo escribe en el fichero,debe marcar de alguna manera que el fichero está ocupado. El otro hilo, al intentar escribir, lo verá ocupado y deberá esperar a que esté libre. En java esto se hace fácilmente. El código sería asísynchronized (fichero)
{
   fichero.println("En un lugar de la Mancha...");
}
y el otro hilo
synchronized (fichero)
{
   fichero.println("... ser o no ser ...");
}
Alponer synchronized(fichero) marcamos fichero como ocupado desde que se abren las llaves de después hasta que se cierran. Cuando el segundo hilo intenta también su synchronized(fichero), se queda ahí bloqueado, en espera que de queel primero termine con fichero. Es decir, nuestro hilo Shakespeare se queda parado esperando en elsynchronized(fichero) hasta que nuestro hilo Cervantes termine.
synchronized comprueba si...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • La Sincronización
  • Sincronización
  • Sincronizacion
  • hilo
  • Hilos
  • hila
  • hilos
  • Hila

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS