साथ ReentrantReadWriteLock निम्नलिखित ठेठ पाठक और लेखक पैटर्न (पढ़ता है की एक बहुत कुछ और कुछ राईट)जावा: प्राथमिकता
private ReadWriteLock lock = new ReentrantReadWriteLock();
private int value;
public void writeValue(int newValue){
lock.writeLock().lock();
try{
this.value = newValue;
}
finally{
lock.writeLock().unlock();
}
}
public int readValue(){
lock.readLock().lock();
try{
return value;
}
finally{
lock.writeLock().unlock();
}
}
मुझे लगता है कि सोच रहा हूँ है यह लेखक और पाठक को प्राथमिकता दी जाती है के लिए संभव है? उदाहरण के लिए, आम तौर पर लेखक बहुत लंबे समय तक प्रतीक्षा कर सकते हैं (शायद हमेशा के लिए) यदि अन्य थ्रेड द्वारा लगातार ताले पढ़ने वाले ताले होते हैं, तो क्या लेखक को उच्च प्राथमिकता के साथ रखना संभव है, इसलिए जब भी कोई लेखक आता है तो इसे माना जा सकता है उच्च प्राथमिकता (छोड़ें लाइन) कुछ ऐसा है।
क्या आपको लगता है कि इस समय अन्य अतिरिक्त समवर्ती संग्रह आवश्यक है? BlockingQueue की तरह? या समवर्ती PriortyQueue कुछ ऐसा है? – peter
@ user1389813 - क्या फीफो ऑर्डरिंग आपकी आवश्यकताओं के लिए पर्याप्त पर्याप्त गारंटी नहीं है? इस बात पर विचार करते हुए कि पाठक (आपके उदाहरण में) केवल एक साधारण मूल्य पढ़ रहे हैं, मैं कल्पना नहीं कर सकता कि एक लेखक को मौजूदा पाठकों के लिए लंबे समय तक इंतजार करना होगा (जो एक साथ आगे बढ़ सकते हैं)। – jtahlborn
तो आपका सुझाव क्या है? – peter