1
我有一個API只支持異步做一些操作,我想強制它阻止我的線程。強制異步操作阻塞當前線程
static void doWorkSync(Worker worker) {
final Condition condition = new ReentrantLock().newCondition();
worker.doWorkAsync(() -> condition.signal());
try {
condition.await();
} catch (InterruptedException e) {
throw new AssertionError(e);
}
}
正如上面所使用的,條件是這種情況最激烈的解決方案嗎?
「doWorkAsync」API的外觀如何?有''Runnable'回調參數之類的'void'? –
另外,如果沒有相應的「Lock」,就不能'發信號'或'等待'。 –
@SotiriosDelimanolis是的:'void doWorkAsync(Runnable action)' –