Middle
ReadWriteLock kullanmanın özü nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
ReadWriteLock, paylaşılan kaynağı aynı anda birden fazla akışın okuyabileceği, ancak yalnızca bir akışın aynı anda yazabileceği şekilde izin verir. Bu, okuma işlemlerinin yazma işlemlerinden daha sık gerçekleştiği senaryolarda performansı artırır.
Ana bileşenler:
- Read Lock: Aynı anda birden fazla akış tarafından tutulabilir.
- Write Lock: Sadece tek bir akış tarafından tutulabilir. Diğer yazarları ve okuyucuları engeller.
Benzer davranış, ReadWriteLock olmadan synchronized veya ReentrantLock kullanmayı gerektirirdi, bu da herhangi bir akış kilidi tutarken tüm okuma ve yazma işlemlerini engellerdi.
Kullanım örneği:
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
class SharedResource {
private final ReadWriteLock rwLock = new ReentrantReadWriteLock();
private String data = "Initial Data";
public String readData() {
rwLock.readLock().lock(); // Okuma kilidini al
try {
// Veriyi oku
return data;
} finally {
rwLock.readLock().unlock(); // Okuma kilidini serbest bırak
}
}
public void writeData(String newData) {
rwLock.writeLock().lock(); // Yazma kilidini al
try {
// Veri yaz
this.data = newData;
} finally {
rwLock.writeLock().unlock(); // Yazma kilidini serbest bırak
}
}
}