concurrency, .
, ,
ReentrantLock
Condition
.
, Java :
private Object lock = new Object();
synchronized(lock) {
...
lock.wait();
...
lock.notify();
...
lock.notifyAll();
...
}
Kotlin:
private val lock = new ReentrantLock()
private val condition = lock.newCondtion()
lock.lock()
try {
...
condition.await()
...
condition.signal()
...
condition.signalAll()
...
} finally {
lock.unlock()
}
, , , ( ReentrantReadWriteLock.ReadLock ReentrantReadWriteLock.WriteLock).