Hi Leute,
ich habe mal eine Frage zu Synchronized.
In einem Objekt habe ich zwei Methoden. Es darf allerdings immer nur eine von beiden zum gleichen Zeitpunkt ausgeführt werden, da beide auf die selbe Ressourcen zugreifen.
Der Zugriff auf diese Methoden erfolgt via Threads, weshalb ich das ganze Synchronisieren muss, da ich ja nicht weiss, wann welche Methode aufgerufen wird.
Derzeit habe ich in beide Methoden (Methode a und Methode b) folgendes geschrieben:
Damit wird doch das komplette Objekt (bzw beide "sync-markierte" Methoden) vorübergehend für alle bis auf den aktiven Thread gesperrt, oder?
Also wenn Thread 1 gerade auf die Methode a zugreift, dann kann Thread 2 weder auf Methode a noch auf Methode b zugreifen, oder?
Habe ich das System soweit richtig verstanden?
Gruss
M_Kay
ich habe mal eine Frage zu Synchronized.
In einem Objekt habe ich zwei Methoden. Es darf allerdings immer nur eine von beiden zum gleichen Zeitpunkt ausgeführt werden, da beide auf die selbe Ressourcen zugreifen.
Der Zugriff auf diese Methoden erfolgt via Threads, weshalb ich das ganze Synchronisieren muss, da ich ja nicht weiss, wann welche Methode aufgerufen wird.
Derzeit habe ich in beide Methoden (Methode a und Methode b) folgendes geschrieben:
Code:
synchronized (this) {
... code
}
Also wenn Thread 1 gerade auf die Methode a zugreift, dann kann Thread 2 weder auf Methode a noch auf Methode b zugreifen, oder?
Habe ich das System soweit richtig verstanden?
Gruss
M_Kay