Wie mit ReentrantLock sperren?
Ich würde erwarten, dass der folgende Test nur einmal "Wurde gesperrt" druckt. ABER es druckt folglich die Zeile.
public class LocKTest {
@Test
public void testLock() {
Lock lock = new ReentrantLock();
while (true) {
if (lock.tryLock()) {
//lock.lock(); same result if I include an explicit lock here
System.out.println("has been locked");
}
}
}
}
So weit ich verstanden habe,tryLock
sperrt dasReentrantLock
wenn möglich (dh wenn noch nicht gesperrt). Aber offensichtlich ist das nicht der Fall.
Wie kann ich eine solche Sperre threadsicher einstellen?