class ThreadSafeClass extends Thread
{
private static int count = 0;
public synchronized static void increment()
{
count++;
}
public synchronized void decrement()
{
count--;
}
}
¿Alguien puede explicar por qué la clase anterior no es segura para subprocesos?
synchronized
debe usarse solo en métodos estáticos. Entonces, en mi opinión, incluso si elimina el increment
método, todavía no es seguro para subprocesos ya que dos instancias (que solo tienen acceso sincronizado a través de la misma instancia) pueden llamar al método simultáneamente.
increment
), sería seguro para subprocesos. O si usó algún objeto de bloqueo. Como dije, no sé sobre Java; mi comentario proviene del conocimiento de C #.