Metodo mutex

Solo disponible en BuenasTareas
  • Páginas : 2 (458 palabras )
  • Descarga(s) : 0
  • Publicado : 12 de noviembre de 2011
Leer documento completo
Vista previa del texto
12/11/2011

MÉTODO MUTEX

Mutex es básicamente la exclusión mutua. Sólo un hilo puede adquirir el recurso a la vez. Cuando un subproceso adquiere el recurso, ningún otro flujo se le permiteadquirir el recurso hasta que el flujo poseer las liberaciones de recursos. El lenguaje Java permite al programador indicar la ejecución en exclusión mútua de partes del código.

1

12/11/2011

Ellenguaje Java proporciona dos modos principales de sincronización. La primera son los métodos sincronizados. En la implementación de una clase, pueden especificarse algunos (o todos) los métodos comosincronizados (synchronized). Cuando una hebra realiza una llamada a un método sincronizado, antes de que se comience a ejecutar el código del método, la hebra debe conseguir bloquear el cerrojoasociado con el objeto this que se está utilizando. Gracias a eso, solo una hebra puede estar ejecutando el código de ese método.

Hay que destacar que esto es a nivel de objetos, pues cada uno tendrá uncerrojo. Dos hebras podrán estar ejecutando el mismo método sincronizado al mismo tiempo si son de objetos diferentes (aunque de la misma clase). Esto se debe a que la entrada en un métodosincronizado bloquea el cerrojo del objeto this.

2

12/11/2011

Los métodos sincronizados se utilizan para conseguir un acceso controlado a los objetos. Habitualmente se utilizan en objetos con estado,de modo que se evita que varias hebras traten de modificar el estado de forma simultánea, lo que ocasionaría generalmente que el objeto se quedara en un estado indefinido. También se suelen hacer eneste caso sincronizados los métodos de consulta del estado, para que no puedan ser consultados durante un cambio, en el que el objeto se encuentra en un estado intermedio inválido.

La otra forma decontrol de exclusión mútua que proporciona Java son los bloques sincronizados. Éstos se utilizan para hacer sincronizados secciones de código dentro de un método, pero no un método entero. Cuando se...
tracking img