जावा के Future.get()
इस मामले में व्यवहार करते हैं जहां कार्य पूरा होने के बाद इसे कई बार कहा जाता है? क्या यह वही परिणाम देता है? या गणना के असफल होने पर एक ही अपवाद के साथ ExecutionException
को बार-बार फेंक देता है? मुझे इसके बारे में दस्तावेज़ों में कुछ भी नहीं मिला!जावा - Future.get() एकाधिक आमंत्रण
उत्तर
आप जितनी बार चाहें Future
पर get()
पर कॉल कर सकते हैं, और यह केवल तभी ब्लॉक करेगा जब परिणाम उत्पन्न करने वाला कार्य अभी तक समाप्त नहीं हुआ है।
यदि कार्य पहले ही समाप्त हो चुका है, तो यह तुरंत कार्य के परिणाम को वापस कर देगा।
यदि कार्य अपवाद के साथ विफल रहा है, तो get()
पर कॉल करने पर प्रत्येक बार जब आप इसे कॉल करते हैं तो ExecutionException
फेंक देंगे।
मुझे इसके बारे में दस्तावेज़ों में कुछ भी नहीं मिला!
क्या आपने उन्हें पढ़ा है? क्योंकि जब मैं उन्हें पढ़ा रहा उत्तर मिला है और यहाँ यह है ....
V get() throws InterruptedException, ExecutionException
वेट्स आवश्यक हो तो गणना को पूरा करने के लिए, और फिर उसके परिणाम प्राप्त करता है।
Returns: the computed result Throws: CancellationException - if the computation was cancelled ExecutionException - if the computation threw an exception InterruptedException - if the current thread was interrupted while waiting
संगणना पूरा नहीं किया जाता है तो यह इंतजार करेंगे, और यह पहले से ही पूरा कर लिया है अगर यह परिणाम यथाशीघ्र वापस आ जाएगी, कोई फर्क नहीं पड़ता कि कितनी बार आप इसे
आप कहां पढ़ रहे हैं? https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html#get-- में मैं देखता हूं: गणना पूर्ण करने के लिए आवश्यक होने पर प्रतीक्षा करता है, और फिर इसके परिणाम को पुनर्प्राप्त करता है । अंतिम भाग के बिना। आपको वह जानकारी कहां मिलती है? मैं अनियंत्रित व्यवहार पर भरोसा नहीं करना चाहता, मुझे पता है कि अगर मैं कोशिश करता हूं तो क्या होता है, लेकिन मैं सटीक अनुबंध चाहता था। –
@ मार्को सर्वेटो, तो कृपया ध्यान से लाइन पढ़ें, यह इंतजार करेगा कि प्रक्रिया पूरी नहीं हुई है या यह परिणाम वापस कर देगी, यह कहीं भी नहीं लिखा गया है कि अगर आप इसे बार-बार कहते हैं तो एक अपवाद आएगा। 'मुझे यह कोशिश करके यह जानकारी मिलती है, और फिर निष्कर्ष पर आया –
- 1. जावा Future.get (टाइमआउट) क्यों विश्वसनीय नहीं है?
- 2. ForkJoinPool और Future.Get
- 3. एकाधिक आमंत्रण-एसक्यूएलएमएमडी और एसक्यूएल सर्वर लेनदेन
- 4. आमंत्रण API
- 5. जेएनआई आमंत्रण API - NoClassDefFoundError (सी/जावा)
- 6. Future.get() Thread.join() के लिए एक प्रतिस्थापन है?
- 7. std :: future.get() कभी-कभी ओएस x
- 8. विधि आमंत्रण
- 9. सी # रिमोट विधि आमंत्रण (आरएमआई)
- 10. जावा वर्चुअल विधि आमंत्रण का उपयोग क्या है?
- 11. रेलवे डिवाइज आमंत्रण भेजने के बाद आमंत्रण रीडायरेक्ट
- 12. $। पोस्ट फेंकना "अवैध आमंत्रण"
- 13. कन्स्ट्रक्टर आमंत्रण पैटर्न
- 14. फेसबुक ऐप आमंत्रण
- 15. rpmbuild प्रति-आमंत्रण
- 16. फेसबुक ऐप आमंत्रण संवाद
- 17. क्लैंग ++ सी ++ 11 आमंत्रण
- 18. EKEvent आमंत्रण स्वीकार करें
- 19. आरएमआई आमंत्रण के साथ क्लासलोडर
- 20. जावा एकाधिक स्कैनर्स
- 21. जावा 8 एकाधिक IntStreams
- 22. एकाधिक कॉलम संरचना जावा
- 23. जावा पर एकाधिक वंशानुक्रम
- 24. एकाधिक जावा वेब प्रोजेक्ट
- 25. जावा एकाधिक संसाधन बंडल
- 26. जावा एकाधिक ध्वनि
- 27. आमंत्रण हैंडलर को कभी भी
- 28. चैटरूम आमंत्रण को स्वीकार करना
- 29. टेस्टफ्लाइट आमंत्रण कोड कैसे बनाएं?
- 30. अजीब विधि आमंत्रण अनुकूलन समस्या
[भविष्य] (https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html) कक्षा दस्तावेज़ (और [भविष्य.get] (https://docs.oracle.com/javase/8/docs /api/java/util/concurrent/Future.html#get--)) अधिकांश प्रश्नों का उत्तर दें - कुछ और पढ़ना होगा। – user2864740
और आप इसे भी आजमा सकते हैं और देख सकते हैं। –