/ / अक्का फ्यूचर के अंदर लिपटे कोड को अवरुद्ध करने से भविष्य द्वारा समर्थित धागे को भी अवरुद्ध कर दिया जाता है, तो भविष्य में इस मामले में भविष्य कैसे उपयोगी होता है - स्कैला, अक्का, भविष्य

अक्का फ्यूचर के अंदर लिपटे कोड को अवरुद्ध करने से भविष्य में समर्थित धागे को भी अवरुद्ध कर दिया जाता है, फिर भविष्य में इस मामले में मददगार कैसे है - स्कैला, अक्का, भविष्य

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

val blockingCallResult: Result = block() //blocks the thread of execution.

now let"s use Akka/Scala future and wrap the blocking call with Future


val future = Future[Result] {

val blockingCallResult: Result = block() //also blocks on some thread in thread pool

blockingCallResult

}

भविष्य का उपयोग करके हम कैसे लाभान्वित हो रहे हैं।

उत्तर:

उत्तर № 1 के लिए 4

यदि आपके पास केवल एक निष्पादन संदर्भ है, औरआप केवल वायदा का उपयोग करते हैं जो ब्लॉकिंग कोड निष्पादित करते हैं, और केवल एक ही समय में, फिर भविष्य का उपयोग करने से वास्तव में कोई फायदा नहीं होता है। वायदा के फायदे हैं:

  • समांतरता - एक मल्टीकोर मशीन पर, कईथ्रेड एक ही समय में निष्पादित कर सकते हैं। निष्पादन संदर्भ के साथ वायदा का उपयोग प्रत्येक क्रिया के लिए एक नया धागा बनाने या मैन्युअल रूप से धागे का पुन: उपयोग करने के ऊपरी हिस्से से बचाता है, और निष्पादन संदर्भ आपको पूल आकार पर नियंत्रण देता है।
  • उपयोग करके I / O और गणना धागे का पृथक्करणविभिन्न निष्पादन संदर्भ। यह कर्नेल को लंबे समय से चलने वाले कम्प्यूटेशनल कार्यों से पहले, / विलंबता में सुधार के साथ इंटरैक्टिव प्रतिक्रियाओं को शेड्यूल करने की अनुमति देता है।
  • सही async I / O, उदाहरण के माध्यम से स्कैला-रेडिस-एनबी (या नेटटी या रिएक्टिवमोन्गो (?))। भविष्य के बजाय केवल एक धागा जो ब्लॉक करता है, फ्यूचर्स (जैसे वादे के माध्यम से) का उपयोग करके एसिंक एपीआई (जो कि अन्यथा कॉलबैक का उपयोग कर सकता है) का पर्दाफाश करना संभव है, और फिर आप वास्तव में एसिंक कोड लिख सकते हैं जो किसी भी धागे से बचाता है I / O पर अवरुद्ध किया गया है, और कॉलबैक-आधारित API का उपयोग करने से बहुत अधिक एपीआई एपीआई के साथ।