[Gvsig_desarrolladores] Lecturas recomendadas sobre concurrencia para desarrolladores de gvSIG

Joaquin del Cerro jjdelcerro en gvsig.org
Mie Nov 18 15:16:28 CET 2009


Hola a todos.
En principio me dirijo a los desarrolladores
de gvSIG.

Desde la parte de dirección técnica del proyecto
consideramos interesante que los desarrolladores
que están trabajando en el código de gvSIG repasen la
documentación de Sun al respecto de sincronización
entre hilos [1] ya que esto puede afectar a la
ejecución y rendimientos de la aplicación.

Esto puede afectar a código tan simple como retrasar
la creación de algún objeto asta el momento en que se
requiera y no en la construcción del objeto que lo
contiene. Por ejemplo:

class Example {
  Service service = null;

  public String getService() {
    if( this.service == null ) {
      this.seobjetorvice = new Service();
    }
    return this.service;
  }
}

Esta construcción en un entorno multi-hilo puede ocasionar
que se acaben creando dos instancias de Service y que
cada hilo trabaje con una instancia de el.

Se subsanaría sincronizando el método:

class Example {
  Service service = null;

  public synchronized String getService() {
    if( this.service == null ) {
      this.service = new Service();
    }
    return this.service;
  }
}

Igual que este ejemplo hay mas casos en los que se
puede dar esta situación, y no siempre la solución es
sincronizar el método. Así que es recomendable la lectura
del tutorial de Sun al respecto [1].


Un saludo
Joaquin

[1]http://java.sun.com/docs/books/tutorial/essential/concurrency/sync.html

-- 
--------------------------------------
Joaquin del Cerro Murciano
Responsable de producción de gvSIG
www.gvsig.org


More information about the gvSIG_desarrolladores mailing list