2015-03-11 9 views
6

scala.concurrent.Future और scala.concurrent.impl.Future के लिए स्केला स्रोत कोड पढ़ना, ऐसा लगता है कि map के माध्यम से हर भविष्य रचना एक निष्पादक के लिए एक नया कार्य डिस्पैचिज। मुझे लगता है कि यह आमतौर पर वर्तमान धागे के लिए एक संदर्भ स्विच ट्रिगर करता है, और/या नौकरी के लिए धागे का असाइनमेंट करता है।स्काला वायदा और धागे

ध्यान में रखते हुए कि फ़ंक्शन प्रवाहों को अवरुद्ध किए बिना वायदा के परिणाम (या कॉलबैक स्पेगेटी में डूबने के बिना) के फ़्यूचर्स के आसपास फ़्यूचर्स को पार करने की आवश्यकता होती है, यह "प्रतिक्रियाशील" प्रतिमान अभ्यास में बहुत ही सशक्त नहीं है, जब कोड अच्छी तरह से लिखा जाता है एक मॉड्यूलर तरीके से जहां प्रत्येक कार्य केवल कुछ छोटा करता है और दूसरे के साथ गुजरता है?

+0

यूप यह है ... लेकिन यह 'प्रतिक्रियाशील' होना चाहिए और आवश्यक रूप से 'प्रदर्शन अनुकूलित' होना चाहिए। –

+3

इस संबंध में मानक पुस्तकालय द्वारा लिया गया दृष्टिकोण एक डिजाइन निर्णय है, और ट्विटर के वायदा के कार्यान्वयन के साथ विरोधाभास है, जिसे थ्रेड एफ़िनिटी के लिए अनुकूलित किया गया है- उदाहरण के लिए [इस Finaglers पोस्ट] (https://groups.google.com/d/msg/finaglers/yWOr7-7CmPw/TBsJenqynQQJ) कुछ चर्चा के लिए। –

+0

शायद @TravisBrown इसे "आपका उत्तर" बॉक्स में काट/पेस्ट करेगा। मॉड्यूलो उनके मानकों को असंभव रूप से उच्च हैं। लेकिन उनकी टिप्पणी पिछले की तुलना में अधिक समय तक डैश है। –

उत्तर

2

यह निष्पादन संदर्भ पर निर्भर करता है। तो आप रणनीति चुन सकते हैं।

आप निष्पादक भी कॉलिंग थ्रेड में ऐसा कर सकते हैं, मानचित्र-कॉल को उसी थ्रेड पर रखते हुए। आप स्पष्ट रूप से निष्पादन संदर्भ पारित करके या अंतर्निहित उपयोग करके अपनी रणनीति पारित कर सकते हैं।

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

+0

ऐसे निष्पादक को सुरक्षित रूप से प्राप्त करने का उदाहरण प्रदान करने की देखभाल ?? _ "लॉगिंग जो थ्रेड का इस्तेमाल किया गया था" _ भी अच्छा हो सकता है अगर यह पूरा करने के लिए सीधा या सिर्फ जिज्ञासा .... – matanster

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