synchronized( ref )

Mark2

Mitglied
ok, das ist keine schwere frage:

Frage 1:
wenn ich sowas habe:

Java:
synchronized( ref )
{
}

bedeutet das, dass 'ref' während es im synchronized block ist, von keiner anderen methode oder anderem objekt mehr benutzt werden kann ('lock' haben)?

Frage 2:
ist so ein synchronized block objekt übergreifend? würde also 'ref' auch den lock behalten, wenn dieser synchronized block in verschiedenen threads aus verschiedenen klassen läuft?

sorry, wenn ich solch triviale frage stelle, aber irgendwie wurde das nirgendwo so richtig erklärt (oder ich habe das nicht gefunden) :).

achja: frohes neues jahr!
 

Ralph-Uwe

Bekanntes Mitglied
Dir auch ein frohes neues Jahr,

zu 1.) das ist das Objekt, auf das synchronisiert wird. Dies Objekt enthält die Info, ob der nachfolgende Block
gesperrt ist.

zu 2.) bin mir nicht ganz sicher, aber wenn es sich bei den Objekt um eine Klassenobjekt handelt, müsste
es sich auf alle Instanzen der Klassen beziehen.
Bei einem Instanzobjekt nur auf die entsprechende Instanz.


Edit:
folgender Link kann Dir helfen:
Informatik B SS2007
 
Zuletzt bearbeitet:
S

SlaterB

Gast
wichtig ist die Erkenntnis, dass synchronized für sich gar nichts erreicht,
jeder andere Thread kann mit dem Objekt immer noch ne Menge anstellen,

erst wenn andere Programmstellen AUCH synchronized( ref ) {} verwenden, dann kann man sagen,
dass sich immer nur ein Thread in irgendeinem dieser synchronized-Blöcke aufhalten kann, ganz wie es im Lehrbuch steht,
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 11 Threads und nebenläufige Programmierung

wenn andere Threads Methoden des Objektes ausführen wollen und diese Methoden als synchronized deklariert sind, dann kann man diese Methoden gar nicht anders als synchronisiert ausführen
 

Mark2

Mitglied
ok, verstanden. so wie ihr es beschrieben habt, scheine ich es verstanden zu haben.

kurz wiederholt. wenn also der lock im objekt gespeichert wird, dann ist es also völlig egal wo der synchronized block ist und der lock (vom objekt) "aktiviert" wird. auch kann ein synch.block (in einer methode) verschiedene locks aktivieren. das ist gut!

übrigens habe ich mir java insel kap. 11 schon oft durchgelesen, aber nicht das bekommen was ich gesucht habe; deshalb vielen dank für eure hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
frager2345 Thread - Methoden synchronized deklarieren Java Basics - Anfänger-Themen 10
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
A Thread - Synchronized Java Basics - Anfänger-Themen 10
berserkerdq2 Findet eine parallele Verarbeitung in Java bei Threads erst statt, wenn man die Methoden auch synchronized? Und wie sieht bei Conditions aus? Java Basics - Anfänger-Themen 8
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
O synchronized Java Basics - Anfänger-Themen 39
O synchronized difference Java Basics - Anfänger-Themen 5
E Synchronisierte Methoden vs. Synchronized(lockObject) Block Java Basics - Anfänger-Themen 7
T Was bringt das synchronized bei der Methode? Java Basics - Anfänger-Themen 12
temi Synchronized(Monitor) Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
Shams Synchronized-Schlüsselwort bei Inkrementierung einer statischen Variable Java Basics - Anfänger-Themen 13
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
M Threads synchronized und wait Java Basics - Anfänger-Themen 2
N Threads Probleme mit synchronized Java Basics - Anfänger-Themen 9
B synchronized threads Java Basics - Anfänger-Themen 17
J Threads Synchronized Java Basics - Anfänger-Themen 6
U synchronized / lock Java Basics - Anfänger-Themen 8
P Arraylist synchronized? Java Basics - Anfänger-Themen 6
X3TitanCore Methoden synchronized bei einer Methode Java Basics - Anfänger-Themen 2
P synchronized methoden Java Basics - Anfänger-Themen 3
B warum schließt synchronized andere threads nicht aus? Java Basics - Anfänger-Themen 7
M Synchronized klappt nicht Java Basics - Anfänger-Themen 11
E synchronized Methoden Java Basics - Anfänger-Themen 3
I Synchronized Threads Java Basics - Anfänger-Themen 4
R Problem: Threads Synchronized machen Java Basics - Anfänger-Themen 5
M OOP Synchronized Methoden, zugriff aus Threads Java Basics - Anfänger-Themen 4
X Threads und synchronized - Verständnisproblem Java Basics - Anfänger-Themen 3
M Kleines Problem mit Threads (synchronized) Java Basics - Anfänger-Themen 3
S Fragen zu synchronized + Singleton! Java Basics - Anfänger-Themen 10
S bin zu blöd für threads - wait, notify, synchronized Java Basics - Anfänger-Themen 11
J simple Frage zu synchronized Java Basics - Anfänger-Themen 4
S Threads: synchronized mach nicht was es soll? Java Basics - Anfänger-Themen 6
L Threads und synchronized Java Basics - Anfänger-Themen 8
R wait() in synchronized - Block oder nicht? Java Basics - Anfänger-Themen 4
X Synchronized Zugriff ArrayList<E> Java Basics - Anfänger-Themen 6
G synchronized Java Basics - Anfänger-Themen 5
M synchronized variables? Java Basics - Anfänger-Themen 8
B Verständnissfrage synchronized Java Basics - Anfänger-Themen 2
S Warum wirkt hier synchronized nicht? Java Basics - Anfänger-Themen 9
C Trotz "synchronized" unerwartete Ausgabe Java Basics - Anfänger-Themen 2
E Synchronized - Methoden in verschied. Klassen Java Basics - Anfänger-Themen 3
C synchronized Java Basics - Anfänger-Themen 2
J Fragen zu Synchronized Java Basics - Anfänger-Themen 6
T synchronized HashMap Java Basics - Anfänger-Themen 7
L Problem mit synchronized und String Java Basics - Anfänger-Themen 2
A Problem mit Threads und synchronized Java Basics - Anfänger-Themen 3
B Was bedeutet synchronized? Java Basics - Anfänger-Themen 8

Ähnliche Java Themen


Oben