6.1 निष्पादन योग्य वस्तुएं

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

बेहतर समझ के लिए, आइए इंटरफेस और कक्षाओं का थोड़ा अपघटन करें।

6.2 निष्पादन योग्य वस्तुओं की प्राप्ति

Future<V>अतुल्यकालिक ऑपरेशन के परिणाम प्राप्त करने के लिए एक अद्भुत इंटरफ़ेस है। यहां मुख्य विधि गेट मेथड है, जो वर्तमान थ्रेड (टाइमआउट के साथ या उसके बिना) को तब तक ब्लॉक करती है जब तक कि किसी अन्य थ्रेड पर एसिंक्रोनस ऑपरेशन पूरा नहीं हो जाता। ऑपरेशन रद्द करने और वर्तमान स्थिति की जाँच करने के लिए अतिरिक्त विधियाँ भी हैं। FutureTask वर्ग को अक्सर कार्यान्वयन के रूप में उपयोग किया जाता है।

RunnableFuture<V>- यदि Future क्लाइंट API के लिए एक इंटरफ़ेस है, तो RunnableFuture इंटरफ़ेस का उपयोग पहले से ही अतुल्यकालिक भाग को शुरू करने के लिए किया जाता है। रन () विधि का सफल समापन एसिंक्रोनस ऑपरेशन को समाप्त करता है और परिणाम प्राप्त करने की विधि के माध्यम से प्राप्त करने की अनुमति देता है।

Callable<V>- अतुल्यकालिक संचालन के लिए रननेबल इंटरफ़ेस का एक विस्तारित एनालॉग। आपको टाइप किए गए मान को वापस करने और चेक किए गए अपवाद को फेंकने की अनुमति देता है। भले ही इस इंटरफ़ेस में रन () विधि नहीं है, लेकिन कई java.util.concurrent वर्ग इसे रननेबल के साथ समर्थन करते हैं।

FutureTask<V>- Future/RunnableFuture इंटरफ़ेस का कार्यान्वयन। रननेबल या कॉल करने योग्य ऑब्जेक्ट्स के रूप में एक कंस्ट्रक्टर के इनपुट के रूप में एक एसिंक्रोनस ऑपरेशन लिया जाता है। FutureTask क्लास को वर्कर थ्रेड में लॉन्च करने के लिए डिज़ाइन किया गया है, उदाहरण के लिए, new थ्रेड (टास्क) .स्टार्ट () या थ्रेडपूल एक्ज़ीक्यूटर के माध्यम से। एक अतुल्यकालिक ऑपरेशन के परिणाम प्राप्त (...) विधि के माध्यम से प्राप्त किए जाते हैं।

Delayed- अतुल्यकालिक कार्यों के लिए उपयोग किया जाता है जो भविष्य में और साथ ही DelayQueue में शुरू होने चाहिए। आपको एसिंक्रोनस ऑपरेशन शुरू होने से पहले का समय निर्धारित करने की अनुमति देता है।

ScheduledFuture<V>- एक मार्कर इंटरफ़ेस जो भविष्य और विलंबित इंटरफेस को जोड़ता है।

RunnableScheduledFuture<V>- एक इंटरफ़ेस जो रननेबलफ्यूचर और शेड्यूल्डफ्यूचर को जोड़ती है। इसके अतिरिक्त, आप निर्दिष्ट कर सकते हैं कि कार्य एक बार का कार्य है या निर्दिष्ट आवृत्ति पर चलाया जाना चाहिए।