Middle
ReadWriteLock istifadə etmənin mahiyyəti nədir?
sobes.tech Süni İntellekt
AI-dan cavab
ReadWriteLock çox sayda axını eyni zamanda paylaşılan resursu oxumağa imkan verir, lakin yalnız bir axın eyni zamanda ona yaza bilər. Bu, oxuma əməliyyatlarının yazma əməliyyatlarından daha çox olduğu ssenarilərdə performansı artırır.
Əsas komponentlər:
- Read Lock: Eyni vaxtda bir neçə axın tərəfindən saxlanıla bilər.
- Write Lock: Yalnız bir axın tərəfindən saxlanıla bilər. Digər yazarları və oxuyucuları bloklayır.
ReadWriteLock olmadan oxşar davranış synchronized və ya ReentrantLock istifadə etməklə həyata keçirilərdi, bu da bütün əməliyyatları (oxuma və yazma) hər hansı bir axın lock tutarkən bloklayardı.
İstifadə nümunəsi:
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(); // Oxuma lock-u əldə edir
try {
// Məlumatları oxu
return data;
} finally {
rwLock.readLock().unlock(); // Oxuma lock-unu azad et
}
}
public void writeData(String newData) {
rwLock.writeLock().lock(); // Yazma lock-u əldə edir
try {
// Məlumatları yaz
this.data = newData;
} finally {
rwLock.writeLock().unlock(); // Yazma lock-unu azad et
}
}
}