class ThreadSafeClass extends Thread
{
private static int count = 0;
public synchronized static void increment()
{
count++;
}
public synchronized void decrement()
{
count--;
}
}
Kann jemand erklären, warum die obige Klasse nicht threadsicher ist?
synchronizedsollte die nur in statischen Methoden verwendet werden. Selbst wenn Sie die incrementMethode entfernen , ist sie meiner Meinung nach immer noch nicht threadsicher, da zwei Instanzen (die nur über dieselbe Instanz synchronisierten Zugriff haben) die Methode gleichzeitig aufrufen können.
increment) benötigt, ist sie möglicherweise threadsicher. Oder wenn Sie ein Sperrobjekt verwendet haben. Wie gesagt, ich weiß nichts über Java - mein Kommentar stammt aus C # -Wissen.