Foros del Web » Programación para mayores de 30 ;) » Java »

Synchronized duda!!!

Estas en el tema de Synchronized duda!!! en el foro de Java en Foros del Web. tengo una duda con la sincronizacion. aqui tengo una pregunta de un examen test y no estoy seguro de cual es la respuesta porque no ...
  #1 (permalink)  
Antiguo 31/08/2010, 15:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 4 meses
Puntos: 0
Synchronized duda!!!

tengo una duda con la sincronizacion. aqui tengo una pregunta de un examen test y no estoy seguro de cual es la respuesta porque no tengo experiencia aun aver si alguien me echa una mano!!

dado el siguiente servidor
Código:
public class Servidor extends IServidor implements UnicastRemoteObject {
	HashMap<String, Integer> productosOrdenados;
		public Servidor(){
		...Constructor...
		}
	public insert(String ordenID){
		...
	}
}
cual de las siguientes llamadas del cliente al metodo insert es correcta¿?¿?¿?
Código:
1. public insert(String ordenID){
	synchronized(productosOrdenados) {
		if(productosOrdenados.contains(ordenId)){
			productosOrdenados.put(ordenID, productosOrdenados.get(ordenId)++);
		} else {
			productosOrdenados.put(ordenID, 1);
		}
	}
}
______________________________-
2.	 Ninguna de las otras opciones
________________________________-
3. public insert(String ordenID){
	synchronized(this) {
		if(productosOrdenados.contains(ordenId)){
			int val = productosOrdenados.get(ordenId);
			productosOrdenados.put(ordenID, ++val);
		} else {
			productosOrdenados.put(ordenID, 1);
		}
	}
}
___________________________-
4. public insert(String ordenID){
	if(productosOrdenados.contains(ordenId)){
		synchronized(productosOrdenados) {
			productosOrdenados.put(ordenID, productosOrdenados.get(ordenId)++);
	}
	} else {
		synchronized(productosOrdenados) {
			productosOrdenados.put(ordenID, 1);
			}
		}
	}
}
yo creo que la respuesta incorrecta es la 2 porque las llamadas me parece que hacen buen uso del synchronized.
que pensais vosotros???
  #2 (permalink)  
Antiguo 31/08/2010, 15:29
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 2 meses
Puntos: 51
Respuesta: Synchronized duda!!!

La 4 es incorrecta y la 3 no hace buen uso del bloque synchorized, ya que para eso, poner el atributo synchronized es lo mismo. Aparte de hacer el chorra para asignar el valor, lo cual así a primeras no parece incorrecto, simplemente hacer el tonto.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:57.