Ver Mensaje Individual
  #3 (permalink)  
Antiguo 23/01/2012, 08:54
Silvia_FM
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Concurrencia en Servlet

Buscando en google me he encontrado con una explicación como ésta, que os pongo aquí por si sirve de aclaración:


Los servlets se ejecutan en un entorno multihilo. El heap es compartido por todos los hilos de ejecución y sólo los parámetros de los métodos y variables de ese ámbito son exclusivas del hilo. Entonces, el declarar atributos en la clase Servlet, hará que esos atributos sean compartidos por todos los hilos de ejecución.

Es decir, que parece que los únicos problemas pueden estar si declaro variables a nivel de clase, que se pueden sobreescribir según se ejecuten los hilos. Pero no hay problema con las variables que se declaran dentro del doPost o doGet, que siempre serán locales y propias de cada hilo.

Si no estoy en lo cierto, por favor, que alguien me corrija.

Por otra parte tengo la clase Bean que comentaba. ¿Me confirmáis que haciendo un new de esa clase, creo una instancia de la misma, y por tanto, los sets no se sobreescribirán unos a otros cuando distintos usuarios ejecuten a la vez el servlet?

Es que después de leer y encontrar ejemplos con synchronized, dá la sensación que hay que ponérselo a todo para evitar problemas de concurrencia.