Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Şöyle yaparız.
Açıklaması şöyle. Niçin may kelimesi kullanılmış bilmiyorum.
Bekleyen tüm thread'leri uyandırır.
Örnek ver.
Producer
Klasik kullanımı şöyledir.
1. Lock kilitlenir
2. Condition sinyallenir
3. Lock bırakılır
Şu satırı dahil ederiz.
import java.util.concurrent.locks.Condition;
constructorŞöyle yaparız.
Lock lock = new ReentrantLock();
Condition condition = lock.newCondition();
await metoduŞöyle yaparız.
condition.await();
signal metoduAçıklaması şöyle. Niçin may kelimesi kullanılmış bilmiyorum.
Bekleyen tek bir thread'i uyandırır. Şöyle yaparız.An implementation may (and typically does) require that the current thread hold the lock associated with thisCondition
when this method is called.
condition.signal();
signalAll metoduBekleyen tüm thread'leri uyandırır.
condition.signalAll();
ConsumerÖrnek ver.
Producer
Klasik kullanımı şöyledir.
1. Lock kilitlenir
2. Condition sinyallenir
3. Lock bırakılır
@Override
public void foo (){
lock.lock();
try{
...
condition.signalAll();
} finally{
lock.unlock();
}
}