dado el siguiente servidor
Código:
cual de las siguientes llamadas del cliente al metodo insert es correcta¿?¿?¿?public class Servidor extends IServidor implements UnicastRemoteObject { HashMap<String, Integer> productosOrdenados; public Servidor(){ ...Constructor... } public insert(String ordenID){ ... } }
Código:
yo creo que la respuesta incorrecta es la 2 porque las llamadas me parece que hacen buen uso del synchronized.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); } } } }
que pensais vosotros???