Threads ReentrantLock mehrfach verwenden

RungetSvohu

Bekanntes Mitglied
Hallo,

ich habe eine kleine Rückfrage, um sicherzugehen, dass ich alles richtig verstanden habe. Am Anfang einer Klasse habe ich
Java:
private final Lock lock = new ReentrantLock();

Nun habe ich im Code sowas:
Java:
lock.lock();
//Code 1
...
lock.unlock();

Java:
lock.lock();
//Code 2
...
lock.unlock();

Sehe ich das richtig, dass niemals Code 1 und Code 2 gleichzeitig ausgeführt werden können, weil ich das selbe ReentrantLock-Objekt verwende?
 

KSG9|sebastian

Top Contributor
Javadoc sagt

javadoc hat gesagt.:
Acquires the lock.
Acquires the lock if it is not held by another thread and returns immediately, setting the lock hold count to one.

If the current thread already holds the lock then the hold count is incremented by one and the method returns immediately.

If the lock is held by another thread then the current thread becomes disabled for thread scheduling purposes and lies dormant until the lock has been acquired, at which time the lock hold count is set to one.

..also ja!
 

RungetSvohu

Bekanntes Mitglied
Javadoc sagt
..also ja!
Hätte ja auch sein können, dass niemals Code 1 zweimal gleichzeitig ausgeführt wird und niemals Code 2 zweimal gleichzeitig ausgeführt wird, aber es sehr wohl möglich ist, dass Code 1 und Code 2 gleichzeitig ausgeführt werden. Wenn ich ersteres will, muss ich es dann so machen, denke ich:

Java:
private final Lock lock1 = new ReentrantLock();
private final Lock lock2 = new ReentrantLock();

Java:
lock1.lock();
//Code 1
...
lock1.unlock();

Java:
lock2.lock();
//Code 2
...
lock2.unlock();

Richtig?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D ReentrantLock oder Synchronized ? Allgemeine Java-Themen 3
C jar File mehrfach aufrufen (als Windows Dienst) Allgemeine Java-Themen 5
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
Kingamadeus2000 Alle mehrfach vorkommenden Buchstaben rekursiv aus einem String entfernen. Allgemeine Java-Themen 6
D BlueJ, Variablen die mehrfach vorkommen gleichzeitig umbenennen Allgemeine Java-Themen 3
J Generische Interfaces mehrfach einbinden Allgemeine Java-Themen 11
P Programm darf nicht mehrfach startbar sein Allgemeine Java-Themen 16
J Allgemein gültige Klasse/Methode mehrfach verwenden Allgemeine Java-Themen 11
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
M AudioClip in Spiel mehrfach in kurzer Zeit abspielen Allgemeine Java-Themen 3
L Datei sicher löschen/mehrfach überschreiben? Allgemeine Java-Themen 2
J Ein Objekt mehrfach serialisieren Allgemeine Java-Themen 2
S Frage zu mehrfach indizierten Hashmaps Allgemeine Java-Themen 4
E Timer - gleichen Task mehrfach planen Allgemeine Java-Themen 2
G Interface mehrfach implementieren Allgemeine Java-Themen 5
S mehrfach if-anweisung Allgemeine Java-Themen 8
O regulärer Ausdruck zum durchsuchen eines Strings verwenden Allgemeine Java-Themen 2
J Welchen Packager soll ich verwenden. Allgemeine Java-Themen 7
H lokale Variable bei Optional verwenden Allgemeine Java-Themen 11
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
bueseb84 Git : Mehrere Server verwenden Allgemeine Java-Themen 3
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
D Klassen JLabels in anderen Klassen verwenden. Allgemeine Java-Themen 7
D API Keys mehrmals verwenden Allgemeine Java-Themen 6
K For-Schleife <> oder != Operator verwenden? Allgemeine Java-Themen 2
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
J PDFBox kommerziell verwenden Allgemeine Java-Themen 15
S Variablen split-Funkton mit zwei Variabeln verwenden? Allgemeine Java-Themen 4
K jar-Datei lässt sich unter Windows nicht verwenden Allgemeine Java-Themen 3
M Java Mail verwenden Allgemeine Java-Themen 20
Neumi5694 Interface Generics für Enum-Filterung verwenden Allgemeine Java-Themen 5
J Interface Wofür Interfaces in Java verwenden? Allgemeine Java-Themen 3
Neumi5694 Operatoren regEx für das Erstellen eines Strings verwenden Allgemeine Java-Themen 3
O 3D-Grafik java3D in eclipse verwenden Allgemeine Java-Themen 0
J Interface Interface für Framework verwenden Allgemeine Java-Themen 4
G Services verwenden sich gegenseitig Allgemeine Java-Themen 4
R Dateimanager verwenden Allgemeine Java-Themen 2
P Variablen Variable von void im ActionListener verwenden Allgemeine Java-Themen 3
N VB Code in Java verwenden Allgemeine Java-Themen 5
P java.nio.file unter Java 6 verwenden Allgemeine Java-Themen 4
A Klassen String Array in anderer Klasse verwenden Allgemeine Java-Themen 11
P JDK installieren Mac OS X - JDK7 in Eclipse Juno verwenden Allgemeine Java-Themen 3
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
S Aus Programm Klasse erstellen und verwenden Allgemeine Java-Themen 10
R Collections CopyOnWriteArrayList - wie genau verwenden Allgemeine Java-Themen 7
M Lock Datei intelligent verwenden Allgemeine Java-Themen 4
J Eure Meinung: Threads verwenden, oder nicht? Allgemeine Java-Themen 6
X Threads Thread mehrmals verwenden Allgemeine Java-Themen 4
G JGoodies Binding oder EventBus verwenden? Allgemeine Java-Themen 11
E Kann nicht gesamten HeapSpace verwenden Allgemeine Java-Themen 5
A Eigenen OutputStream schreiben und verwenden Allgemeine Java-Themen 9
M Poi-Excel: vorhandene Formatierung verwenden Allgemeine Java-Themen 2
B boolean return typ verwenden? Allgemeine Java-Themen 5
R ResourceBundle in Servlets verwenden Allgemeine Java-Themen 13
A Welche Exception verwenden? Allgemeine Java-Themen 2
R Java function die Strings escaped, sodass ich sie in Javascript verwenden kann? Allgemeine Java-Themen 4
MQue Vector<..> nicht verwenden Allgemeine Java-Themen 4
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
R in einem neuen Runnable() eine lokale Varibale verwenden Allgemeine Java-Themen 2
G dll verwenden Allgemeine Java-Themen 2
A Bestimmte JVM verwenden Allgemeine Java-Themen 13
R array.length in For-Schleife verwenden? Allgemeine Java-Themen 22
F Generics: spricht etwas dagegen raw types zu verwenden? Allgemeine Java-Themen 31
B Passwort verwenden ohne dass es im Quelltext steht Allgemeine Java-Themen 24
D Lostus Notes Adressbuch in eine Java-Webanwendung verwenden Allgemeine Java-Themen 4
G JasperReports: Verwenden von vorkompilierten Reports Allgemeine Java-Themen 2
ToNyXXL Als Mauszeiger eigenes Bild verwenden! Allgemeine Java-Themen 3
A Windows Bitmap-Handle in Java verwenden Allgemeine Java-Themen 2
G Ab wann Datenbank verwenden Allgemeine Java-Themen 15
D .dlls mit Java verwenden Allgemeine Java-Themen 2
M JNI mit vorhandenen libs oder dlls verwenden Allgemeine Java-Themen 2
N Klasse die in C geschrieben wurde in Java verwenden? Allgemeine Java-Themen 20
H Tastatur eingaben verwenden Allgemeine Java-Themen 30
E Statt HashSet die TreeSet verwenden Allgemeine Java-Themen 4
G eigene klassen die ein jar verwenden als neues jar erstellen Allgemeine Java-Themen 4
M java klassen beerben u. den gleichen namen verwenden?(Naming Allgemeine Java-Themen 6
S Änderungen im Source-Code direkt verwenden können? Allgemeine Java-Themen 3
R Sofort "eth0" verwenden Allgemeine Java-Themen 2
G Photoshop Plugins in Java verwenden. Allgemeine Java-Themen 3
P globale Varibalen verwenden? Allgemeine Java-Themen 13
G JRE 1.5.0-rc nicht als Standard-JRE verwenden Allgemeine Java-Themen 6
P Welche Collection verwenden? Allgemeine Java-Themen 4
S Comparator verwenden? Allgemeine Java-Themen 2
J System Tray verwenden Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben