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

जावा 9 में orTimeout() और completeOnTimeOut() मेथड में अंतर?

दोनों orTimeout() और completeOnTimeOut() मेथड CompletableFuture क्लास में परिभाषित हैं और ये दो मेथड जावा 9 में पेश किए गए हैं। orTimeout() मेथड का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि यदि कोई दिया गया कार्य एक निश्चित समय अवधि के भीतर पूरा नहीं होता है, तो प्रोग्राम निष्पादन रोक देता है और TimeoutException फेंकता है जबकि completeOnTimeOut() मेथड CompletableFuture को प्रदान किए गए मान के साथ पूरा करता है। यदि नहीं, तो यह दिए गए टाइमआउट से पहले पूरा हो जाता है।

orTimeout() के लिए सिंटैक्स

public CompletableFuture orTimeout(long timeout, TimeUnit unit)

उदाहरण

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;

public class OrTimeoutMethodTest {
    public static void main(String args[]) throws InterruptedException {
        int a = 10;
        int b = 15;
        CompletableFuture.supplyAsync(() -> {
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
            return a + b;
        })
        .orTimeout(4, TimeUnit.SECONDS)
        .whenComplete((result, exception) -> {
            System.out.println(result);
            if(exception != null)
                exception.printStackTrace();
        });
        TimeUnit.SECONDS.sleep(10);
    }
}

आउटपुट

25

completeOnTimeOut() के लिए सिंटैक्स

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

उदाहरण

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;

public class CompleteOnTimeOutMethodTest {
    public static void main(String args[]) throws InterruptedException {
        int a = 10;
        int b = 15;
        CompletableFuture.supplyAsync(() -> {
            try {
                TimeUnit.SECONDS.sleep(5);
            } catch(InterruptedException e) {
                e.printStackTrace();
            }
            return a + b;
        })
        .completeOnTimeout(0, 4, TimeUnit.SECONDS)
        .thenAccept(result -> System.out.println(result));
        TimeUnit.SECONDS.sleep(10);
    }
}

आउटपुट

25
  1. - जावा में Collection और Collections में अंतर?

    Collection एक इंटरफेस है जबकि Collections जावा में एक यूटिलिटी क्लास है। Set, List, और Queue Collection इंटरफेस के कुछ सबइंटरफेस हैं, एक Map इंटरफेस भी Collections फ्रेमवर्क का हिस्सा है, लेकिन यह Collection इंटरफेस को इनहेरिट नहीं करता। Collection इंटरफेस के महत्वपूर्ण मेथड्स हैं add(), remove(),

  1. - जावा में wait() और sleep() मेथड में अंतर?

    sleep() मेथड Thread क्लास का एक स्टैटिक मेथड है और यह वर्तमान रनिंग थ्रेड को नॉन-रनेबल स्थिति में भेज सकता है जबकि wait() मेथड एक इंस्टेंस मेथड है, हम इसे थ्रेड ऑब्जेक्ट का उपयोग करके बुलाते हैं और यह केवल उस ऑब्जेक्ट के लिए प्रभावी होता है। sleep() मेथड समय समाप्त होने या interrupt() मेथड बुलाए जा

  1. - Java में compareTo() और compare() मेथड्स में क्या अंतर है?

    Comparable इंटरफेस ऑब्जेक्ट्स की ऑर्डरिंग के लिए compareTo() मेथड प्रदान करता है। इस ऑर्डरिंग को क्लास की नेचुरल ऑर्डरिंग कहा जाता है और compareTo() मेथड को इसका नेचुरल कम्पैरिजन मेथड कहा जाता है। Comparator इंटरफेस सॉर्टिंग ऑपरेशन्स करने के लिए मेथड्स प्रदान करता है। Comparator इंटरफेस का उपयोग कर