Java 等待直到在另一个线程中获取锁

Java 等待直到在另一个线程中获取锁,java,multithreading,concurrency,Java,Multithreading,Concurrency,我试图在获得锁的同时解决并发问题,代码如下所示: 真正的锁是在线程启动时获得的,这已经太晚了 acquireLockAndRunOnNewThread(() -> { acquiredLock=true; continueWithOtherStuff(); } //do not continue until the lock is acquired while(acquiredLock==false){ Thread.sleep(100); } continue

我试图在获得锁的同时解决并发问题,代码如下所示:

真正的锁是在线程启动时获得的,这已经太晚了

acquireLockAndRunOnNewThread(() -> {
    acquiredLock=true;
    continueWithOtherStuff();
}

//do not continue until the lock is acquired
while(acquiredLock==false){
    Thread.sleep(100); 
}
continueWithOtherStuffThatAlsoAcquiresALockAtSomePointInTime()
如何在没有线程的情况下正确解决此问题。睡眠?

使用:

然后:

使用:

然后:

CountDownLatch latch = new CountDownLatch(1);
acquireLockAndRunOnNewThread(() -> {
    latch.countDown();
    continueWithOtherStuff();
}

//do not continue until the latch has counted down to zero.
latch.await();
continueWithOtherStuffThatAlsoAcquiresALockAtSomePointInTime()