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?