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'を所有することなく' signal'または 'await'することはできません。 –
@SotiriosDelimanolisはい: 'void doWorkAsync(実行可能なアクション)' –