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

synchronized

Estas en el tema de synchronized en el foro de Java en Foros del Web. Que quiere decir cuando se declara un método con la palabra reservada synchronized?, por ejemplo: public static synchronized boolean Gracias......
  #1 (permalink)  
Antiguo 23/03/2011, 14:22
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 3 meses
Puntos: 6
Pregunta synchronized

Que quiere decir cuando se declara un método con la palabra reservada synchronized?, por ejemplo:

public static synchronized boolean

Gracias...
__________________
¡No competimos, compartimos!...
  #2 (permalink)  
Antiguo 23/03/2011, 16:14
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: synchronized

Quiere decir que solo podrá acceder un thread a la ves al método, por ejemplo un método que lleve tu saldo de banco, que sea
public synchronized void movimientosSaldo(int valor){}, quiere decir que si dos operaciones una de decremento y otra de depósito se suscitan al mismo tiempo, con el synchronized, primero se ejecuta una, después la otra.

Eso significa.

Saludos!!!
  #3 (permalink)  
Antiguo 24/03/2011, 06:39
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 3 meses
Puntos: 6
Respuesta: synchronized

Cita:
Iniciado por sonicJava Ver Mensaje
Quiere decir que solo podrá acceder un thread a la ves al método, por ejemplo un método que lleve tu saldo de banco, que sea
public synchronized void movimientosSaldo(int valor){}, quiere decir que si dos operaciones una de decremento y otra de depósito se suscitan al mismo tiempo, con el synchronized, primero se ejecuta una, después la otra.

Eso significa.

Saludos!!!
Gracias por aclararme la inquietud, ahí te agrego un karma.

Saludos...
__________________
¡No competimos, compartimos!...
  #4 (permalink)  
Antiguo 25/03/2011, 07:29
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 13 años, 5 meses
Puntos: 32
Respuesta: synchronized

Hola:

Un detalle más.
Aunque lo declaras a nivel de método, synchronized actúa a nivel de objeto.

Es decir:
Si tienes una clase con los métodos
public synchronized void movimientosSaldo(int valor)
public synchronized int retornarSaldo()

y hay un thread ejecutando el método movimientosSaldo(...) sobre un objeto de esa clase, ningún otro thread puede acceder ni a ese método ni a retornarSaldo() ni a ningún otro método marcado como synchronized de ese objeto.

saludos;

Nup_

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 19:52.