दोनों या Timeout() और completeOnTimeOut() विधियों को CompletableFuture . में परिभाषित किया गया है क्लास और इन दो विधियों को जावा 9 में पेश किया गया है। या टाइमआउट () विधि का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि यदि दिया गया कार्य एक निश्चित अवधि के भीतर पूरा नहीं होता है, तो प्रोग्राम निष्पादन को रोक देता है और TimeoutException फेंकता है। जबकि completeOnTimeOut() विधि CompletableFuture . को पूरा करती है प्रदान किए गए मूल्य के साथ। यदि नहीं, तो दिए गए समय से पहले इसे पूरा करें।
या टाइमआउट के लिए सिंटैक्स ()
सार्वजनिक पूर्ण करने योग्य भविष्यया समय समाप्त (लंबे समय समाप्त, TimeUnit इकाई)
उदाहरण
आयात करें इंट बी =15; पूर्ण भविष्य .supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .या Timeout (4, TimeUnit.SECONDS) .जब पूर्ण हो ((परिणाम, अपवाद) -> {System.out.println (परिणाम); अगर (अपवाद! =शून्य) अपवाद। प्रिंटस्टैकट्रेस ();}); TimeUnit.SECONDS.sleep(10); }}आउटपुट
25
पूर्णऑनटाइमऑट के लिए सिंटैक्स ()
सार्वजनिक CompletableFutureCompleteOnTimeout(T value, long timeout, TimeUnit Unit)
उदाहरण
आयात करें इंट बी =15; पूर्ण भविष्य .supplyAsync(() -> { try { TimeUnit.SECONDS.sleep(5); } catch(InterruptedException e) { e.printStackTrace(); } return a + b; }) .completeOnTimeout (0, 4, TimeUnit.SECONDS) .फिर स्वीकार करें (परिणाम -> System.out.println (परिणाम)); TimeUnit.SECONDS.sleep(10); }}आउटपुट
25