2010-04-27 12 views
11

मैंने सुना है कि mutexed कथन का वर्णन करने के लिए 'सिंक्रनाइज़' शब्द का उपयोग करना चुनना केवल एक गलती है (संपादित करें: 'गलती' यहां शब्दों का एक बुरा विकल्प था। कृपया जावा में संपादित करें), लेकिन मुझे आश्चर्य है कि क्या वास्तव में पसंद के पीछे एक कारण है।जावा में सिंक्रनाइज़ किए गए कीवर्ड को अधिक सटीक 'mutexed' के बजाय 'सिंक्रनाइज़' क्यों कहा जाता है?

[संपादित करें]

Safyan की टिप्पणी से प्रोत्साहित, मुझे लगता है कि तुल्यकालन जोड़ना चाहते हैं धागे के बीच समय संबंधों की स्थापना के लिए एक सामान्य शब्द है। इसमें पारस्परिक बहिष्कार और दर नियंत्रण जैसी चीजें शामिल हो सकती हैं (उदाहरण के लिए दो धागे एक ही दर पर कुछ कर रहे हैं)। यह 'mutexed' जैसे अधिक विशिष्ट कीवर्ड की बजाय पारस्परिक बहिष्कार के लिए 'सिंक्रनाइज़' का उपयोग करने के लिए अनावश्यक रूप से संदिग्ध प्रतीत होता है।

+0

संभवतः एक उपयोगी संदर्भ: http://stackoverflow.com/questions/1085709/what-does-synchronized-mean –

उत्तर

7

यह कोई गलती नहीं है। इसका मतलब है कि यह क्या कहता है; पारस्परिक बहिष्करण प्रदान करने के लिए कोड को अन्य धागे के साथ सिंक्रनाइज़ करना होगा। और, वास्तव में, सिंक्रनाइज़ शब्द "म्यूटेक्स" से अधिक समझ में आता है, क्योंकि "म्यूटेक्स" का अर्थ एक बहुत ही विशेष प्रकार के सिंक्रनाइज़ेशन आदिम का तात्पर्य है, और सिंक्रनाइज़ किए गए कीवर्ड को किसी भी थ्रेड सिंक्रोनाइज़ेशन प्राइमेटिव्स (परीक्षण & सक्रिय के साथ सेट करके लागू किया जा सकता है) मतदान, semaphores, आदि)।

+0

मेरे लिए, 'म्यूटेक्स' 'आपसी बहिष्करण' के लिए संक्षिप्त संक्षेप है, यह एक विशेष आदिम नहीं है, भले ही यह हो सकता है किसी विशेष भाषा में एक आदिम का नाम बनें। –

+1

@Edward, यूनिक्स और विंडोज दोनों में, म्यूटेक्स एक विशेष आदिम है जो लॉक, अनलॉक और ट्रायलॉक का समर्थन करता है। जबकि जावा मॉनिटर भी प्रतीक्षा करता है और सूचित करता है कि हालत चर के पहलू हैं। –

+0

@ सफ़्यान, पर्याप्त मेला, लेकिन आम तौर पर कार्यों के बीच समय संबंध स्थापित करने के लिए 'सिंक्रनाइज़ेशन' संदर्भ नहीं है? म्यूटेक्स एक अधिभारित शब्द हो सकता है लेकिन यह 'सिंक्रनाइज़' से स्पष्ट लगता है। –

0

सिंक्रनाइज़ किए गए कीवर्ड का उपयोग मॉनिटर पर लॉक को प्राप्त करने और रिलीज़ करने के लिए किया जाता है। म्यूटेक्स की तरह, मॉनीटरों को समवर्ती नियंत्रण के लिए उपयोग किया जाता है, लेकिन वे समान नहीं हैं।

अपने आप में सिंक्रनाइज़ का उपयोग कर एक गलती नहीं है, लेकिन यह एक निम्न स्तर के बहु सूत्रण के साथ प्रयोग करने के लिए का निर्माण किया जा सकता है, और अनुचित उपयोग जल्दी से बहु सूत्रण त्रुटियों हो सकता है।

+0

मुझे लगता है कि आप कहने के लिए कहते हैं, "स्वयं में सिंक्रनाइज़ का उपयोग करना।" –

+0

धन्यवाद, मैंने इसे ठीक कर दिया है। – mdma

0

म्यूटेक्स के बजाय सिंक्रनाइज़ किए गए कीवर्ड का उपयोग वास्तव में शब्द को व्यक्त करने का एक अच्छा तरीका है। म्यूटेक्स द्वारा हम बहुत स्पष्ट नहीं हैं, लेकिन सिंक्रनाइज़ किए गए कीवर्ड स्वयं ही बताते हैं। सिंक्रनाइज़ किए गए कोड को उस कोड पर रखा जाता है जिसे वास्तव में उस थ्रेड के बीच सिंक्रनाइज़ करने की आवश्यकता होती है, जो सभी उस कोड तक पहुंचना चाहते हैं। यही कारण है कि इसे सिंक्रनाइज़ किया जाता है।