Tengo dos hilos. Uno invoca el método de actualización de una clase que modifica una variable. Otro invoca el método de actualización de una clase que lee la variable. Solo un hilo escribe y uno (o más) hilos lee esa variable. ¿Qué debo hacer en términos de concurrencia, ya que soy nuevo en multi-threading?Java comparte una variable entre dos hilos
public class A
{
public int variable; // Does this need to be volatile?
// Not only int, could also be boolean or float.
public void update()
{
// Called by one thread constantly
++variable;
// Or some other algorithm
variable = complexAlgorithm();
}
}
public class B
{
public A a;
public void update()
{
// Called by another thread constantly
// I don't care about missing an update
int v = a.variable;
// Do algorithm with v...
}
}
Gracias,
Muchas de las respuestas siguientes suponen que está realizando una manipulación de enteros que puede manejar la clase 'AtomicInteger'. Para algo más complejo, mire un bloque 'sincronizado' o el' java.util.conccurent.locks.Lock' – justkt