[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