sincronizar variables de clase

pedrito
21 de Diciembre del 2005
Hola a todos:
Tengo una clase de la cual creo un objeto que utilizo en varios Threads, que van modificando ese objeto.
La clase tan solo contiene variables, no metodos, del estilo a:

class MiClase
{
int dato1=1000;
int dato2=2000;
....
}

class Programa extends ...
{
....
main(...)
{
MiClase miClase;
...
...creo y lanzo varios theads que leen y escriben del objeto miClase
...
}
}

Como puedo conseguir que los threads no accedan a la vez al objeto. Todo lo que he visto sobre la clausula synchronyced se refiere a sincronizar un trozo de un método. ¿Alguien puede echar me una mano??
Gracias a todos

chuidiang
21 de Diciembre del 2005
Hola:

Si no quieres meter metodos synchronized para acceder a esas variables, puedes hacer que los hilos lo hagan asi

synchronized (miClase)
{
// acceder a las variables
}

Todos los hilos deben respetar el convenio y hacerlo así. De esta forma dos hilos no accederan a la vez a las variables de la clase.

Se bueno.

jesus torres
21 de Diciembre del 2005
También podrías hacer que las variables sólo se pudieran modificar mediante métodos set_var() y recuperar mediante métodos set_()

Y estos métodos que estuvieran sincronizados.

Saludos