Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा 9 में CompletableFuture API में क्या सुधार हुए हैं?

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

टाइमआउट और देरी के लिए समर्थन

public CompletableFuture orTimeout(long timeout, TimeUnit unit)

उपरोक्त मेथड का उपयोग यह निर्दिष्ट करने के लिए किया गया है कि यदि टास्क एक निश्चित समय अवधि के भीतर पूरा नहीं होता है तो प्रोग्राम रुक जाता है और TimeoutException फेंकता है।

public CompletableFuture completeOnTimeout(T value, long timeout, TimeUnit unit)

उपरोक्त मेथड प्रदान किए गए मान के साथ CompletableFuture को पूरा करता है। यदि नहीं, तो यह दिए गए टाइमआउट से पहले पूरा हो जाता है।

सबक्लासिंग के लिए बेहतर समर्थन

public Executor defaultExecutor()

उपरोक्त मेथड उन एसिंक मेथड के लिए उपयोग किए जाने वाले डिफ़ॉल्ट एक्जीक्यूटर को लौटाता है जो एक्जीक्यूटर नहीं दिखाते। इसे सबक्लास में ओवरराइड किया जा सकता है ताकि कम से कम एक स्वतंत्र थ्रेड देने वाला एक्जीक्यूटर लौटाया जा सके।

public  CompletableFuture newIncompleteFuture()

उपरोक्त मेथड CompletionStage मेथड द्वारा लौटाए जाने वाले विनिर्देशन का एक नया अधूरा CompletableFuture लौटाता है।

नए फैक्ट्री मेथड

public static  CompletableFuture completedFuture(U value)

उपरोक्त फैक्ट्री मेथड प्रदान किए गए मान के साथ पहले से पूर्ण एक नया CompletableFuture लौटाता है।

public static  CompletionStage completedStage(U value)

उपरोक्त फैक्ट्री मेथड प्रदान किए गए मान के साथ पहले से पूर्ण एक नया CompletionStage लौटाता है और केवल इंटरफेस CompletionStage में उपलब्ध मेथड के साथ संगत है।

  1. - Java 9 में क्लास लोडर परिवर्तन: सिस्टम, प्लेटफॉर्म और बूटस्ट्रैप

    Java 9 ने मॉड्यूल सिस्टम (Project Jigsaw) का समर्थन करने के लिए क्लास लोडर आर्किटेक्चर में मूलभूत परिवर्तन पेश किए। पारंपरिक तीन-स्तरीय पदानुक्रम (बूटस्ट्रैप → एक्सटेंशन → सिस्टम/एप्लिकेशन) को पुनर्गठित किया गया है। Java 8 बनाम Java 9+ क्लास लोडर पदानुक्रम Java 8Java 9+परिवर्तन बूटस्ट्रैप

  1. - JShell में Java 9: नियम और सिंटैक्स गाइड

    JShell Java 9 का REPL (Read-Eval-Print Loop) टूल है जो कोड स्निपेट्स के त्वरित निष्पादन की अनुमति देता है। एक स्निपेट एक निर्देश है जो मानक Java सिंटैक्स का उपयोग करता है - अभिव्यक्ति, कथन, या घोषणा। JShell नियम और प्रतिबंध 1. अनुमत स्निपेट प्रकार आयात घोषणाएं कक्षा घोषणाएं इंटरफेस घो

  1. जावा 9 में @Deprecated एनोटेशन में क्या सुधार हैं? जावा 9 में @Deprecated एनोटेशन में क्या सुधार हैं?

    कोई भी तत्व जिसे @Deprecated से एनोटेट किया जा सकता है, यह दर्शाता है कि इस विशेष तत्व का उपयोग निम्नलिखित कारणों से नहीं किया जाना चाहिए: इसका उपयोग करना जोखिम भरा है और त्रुटियों का कारण बन सकता है। भविष्य के संस्करणों में असंगत हो सकता है। भविष्य के संस्करणों में हटाया जा सकता है। एक बेहतर और अध