के बीच अंतर पारंपरिक प्रतीक्षा-अधिसूचना पर काउंटरडाउनलैच का उपयोग करने के फायदों को समझने में मुझे कुछ मदद चाहिए। मुझे लगता है कि सभी को सूचित करें() वास्तव में वही काम करता है, और यह उपयोग करना आसान लगता है (शायद परिचितता के कारण)।प्रतीक्षा-अधिसूचना और काउंटरडाउनलैच
इसके अलावा, CountDownLatch से प्रतीक्षा() और प्रतीक्षा() के बीच क्या अंतर है?
धन्यवाद!
संपादित करें: मुझे लगता है कि मैं अपने प्रश्नों अलग तरीके से व्यक्त करने की जरूरत है: डॉक्स के अनुसार
का इंतजार() का कहना है:
कारण करने के लिए वर्तमान धागा इंतजार तक कुंडी शून्य हो जाने पर गिना गया है , जब तक धागा बाधित नहीं हो जाता है।
मेरे लिए यह इंतजार के बीच अंतर को देखने के लिए मुश्किल है() और इंतजार() - का इंतजार है() वास्तव में कवर के तहत प्रतीक्षा() का उपयोग कर रहा है, और लगता है एक अंतर्निहित notifyAll है() जब गिनती शून्य पर पहुंच गया।
मुझे क्या पूछना था, मुझे काउंटरडाउनलैच के बजाय जाने के बजाय प्रतीक्षा-नोटिफ़ाइली() तंत्र (मेरे अपने काउंटर वेरिएबल प्रोसेसिंग के साथ) का उपयोग क्यों नहीं करना चाहिए?
यहां एक स्पष्ट अंतर है ... यदि थ्रेड बी कॉल करता है तो 'सूचित करें' (पहले 'थ्रेड से पहले' प्रतीक्षा करें '), थ्रेड ए हमेशा के लिए इंतजार करेगा; लेकिन अगर थ्रेड बी थ्रेड से पहले 'countDown() 'कॉल करता है तो कॉल' प्रतीक्षा() ', थ्रेड ए इंतजार किए बिना जारी रहेगा। – yshavit