2013-09-01 7 views
6

प्रदर्शन से और अनुमापकताJCIP book के अध्याय:"फास्ट-पथ" अनचाहे सिंक्रनाइज़ेशन का क्या अर्थ है?

सिंक्रनाइज़ तंत्र uncontended मामले के लिए अनुकूलित है (वाष्पशील हमेशा uncontended है), और इस लेखन में, एक "तेजी की प्रदर्शन लागत -पैथ "असंबद्ध सिंक्रनाइज़ेशन से अधिकांश सिस्टम के लिए 20 से 250 घड़ी चक्रों तक है।

क्या लेखक तेजी से पथ uncontended यहाँ तुल्यकालन द्वारा मतलब है?

+0

क्या आपने कोई Google खोज की है। यह मेरे लिए आया था: https://blogs.oracle.com/dagastine/entry/java_synchronization_optimizations_in_mustang – Gray

उत्तर

7

मैं पुस्तक के विषय से परिचित नहीं हूं, लेकिन आम तौर पर "फास्ट पथ" एक विशिष्ट संभावित नियंत्रण प्रवाह शाखा है जो दूसरों की तुलना में काफी अधिक कुशल है और इसलिए पसंदीदा है, लेकिन जटिल मामलों को संभाल नहीं सकता है।

मुझे लगता है कि पुस्तक जावा के synchronized ब्लॉक/क्वालीफायर के बारे में बात कर रही है। इस मामले में, तेज़ पथ सबसे अधिक संभावना है जहां यह पता लगाना आसान है कि समान डेटा तक पहुंचने वाले कोई अन्य धागे नहीं हैं। पुस्तक क्या कह रही है, तो, यह है कि synchronized के कार्यान्वयन को उस मामले में सर्वश्रेष्ठ प्रदर्शन करने के लिए अनुकूलित किया गया है जहां वास्तव में केवल एक थ्रेड वस्तु का उपयोग कर रहा है, क्योंकि उस मामले के विपरीत जहां एकाधिक धागे हैं और सिंक्रनाइज़ेशन वास्तव में मध्यस्थ होना चाहिए उनमें से।

2

सिंक्रनाइज़ लॉक प्राप्त करने का पहला चरण एक एकल अस्थिर लेखन (मॉनीटर स्वामी फ़ील्ड) है। यदि ताला अनचाहे है तो वह सब कुछ होगा।

यदि लॉक का चुनाव किया जाता है तो विभिन्न संदर्भ स्विच और अन्य तंत्र होंगे जो घड़ी चक्र बढ़ाएंगे।

+0

मैं यह समझने में असफल रहा कि यह कैसे 'फास्ट-पथ' के सवाल का जवाब देता है? अगर यहां कुछ अंतर्निहित है, तो क्या आप इसे स्पष्ट कर सकते हैं? – Geek

+0

तेज पथ एक फ़ील्ड के पढ़ने और लिखना है। धीमा पथ धागे का निलंबन और थ्रेड संदर्भ की बचत है। –

14

यहां दो अलग-अलग अवधारणाएं हैं।

  1. फास्ट पथ और धीरे-पथ कोड
  2. Uncontended और तर्क दिया तुल्यकालन

धीरे-पथ बनाम फास्ट पथ कोड

यह एक और तरीका है के निर्माता की पहचान है मशीन विशिष्ट बाइनरी कोड।

हॉटस्पॉट वी एम के साथ

, धीमी गति से पथ कोड बाइनरी कोड एक सी ++ कार्यान्वयन, जहां तेजी से पथ कोड JIT कम्पाइलर द्वारा उत्पादित कोड का मतलब द्वारा उत्पादित है।

सामान्य रूप से, फास्ट-पथ कोड बहुत अधिक अनुकूलित है। जेआईटी कंपाइलर्स wikipedia is a good place to start को पूरी तरह से समझने के लिए।

Uncontended और तर्क दिया तुल्यकालन

जावा की समन्वयन निर्माण (Monitors) स्वामित्व की अवधारणा है। जब कोई धागा मॉनीटर को लॉक करने की कोशिश करता है (स्वामित्व प्राप्त करता है), तो इसे या तो लॉक किया जा सकता है (किसी अन्य थ्रेड के स्वामित्व में) या अनलॉक किया जा सकता है।

Uncontended तुल्यकालन दो विभिन्न परिदृश्यों में होता है:

  1. खुला मॉनिटर
  2. मॉनिटर पहले से ही एक ही धागे

तर्क तुल्यकालन के स्वामित्व (स्वामित्व स्ट्रेट दूर प्राप्त), दूसरे हाथ पर, इसका मतलब है कि जब तक थ्रेड मॉनिटर लॉक जारी नहीं हो जाता तब तक थ्रेड अवरुद्ध हो जाएगा।

सवाल

उत्तर देना तेजी से पथ uncontended तुल्यकालन लेखक मतलब है, सबसे तेजी से बाईटकोड अनुवाद सबसे सस्ता परिदृश्य (uncontended तुल्यकालन) में (तेजी से पथ) द्वारा।

+0

उत्कृष्ट जवाब। बहुत अच्छी तरह से समझाया – Pigol

+0

यह निश्चित रूप से स्वीकार्य उत्तर होना चाहिए! – ccpizza

संबंधित मुद्दे