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

Java 9 में CompletableFuture के delayedExecutor() मेथड का उपयोग कब करें?

delayedExecutor() मेथड

delayedExecutor() मेथड Java 9 में CompletableFuture क्लास में जोड़ा गया है। CompletableFuture delayedExecutor() के दो ओवरलोडेड मेथड्स को परिभाषित करता है: पहला मेथड डिफ़ॉल्ट एक्जीक्यूटर ऑब्जेक्ट से एक एक्जीक्यूटर ऑब्जेक्ट लौटाता है जिसे CompletableFuture ऑब्जेक्ट देरी के बाद टास्क निष्पादित करने के लिए उपयोग करता है और नया एक्जीक्यूटर ऑब्जेक्ट टास्क निष्पादन कर सकता है, जबकि दूसरा मेथड भी एक एक्जीक्यूटर ऑब्जेक्ट लौटाता है लेकिन यह एक एक्जीक्यूटर ऑब्जेक्ट है जिसे हम इस मेथड में देरी के बाद पास करते हैं और नया एक्जीक्यूटर ऑब्जेक्ट भी टास्क निष्पादन कर सकता है।

सिंटैक्स

public static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
public static Executor delayedExecutor(long delay, TimeUnit unit)

उदाहरण: 3 सेकंड देरी के साथ असिंक्रोनस टास्क

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

public class DelayedExecutorMethodTest {
    public static void main(String args[]) throws InterruptedException, ExecutionException {
        CompletableFuture<String> future = new CompletableFuture<>();
        future.completeAsync(() -> {
            try {
                System.out.println("inside future: processing data...");
                return "tutorialspoint.com";
            } catch(Throwable e) {
                return "not detected";
            }
        }, CompletableFuture.delayedExecutor(3, TimeUnit.SECONDS))
        .thenAccept(result -> System.out.println("accept: " + result));
        for(int i = 1; i <= 5; i++) {
            try { Thread.sleep(1000); } catch(InterruptedException e) { e.printStackTrace(); }
            System.out.println("running outside... " + i + " s");
        }
    }
}

आउटपुट

running outside... 1 s
running outside... 2 s
inside future: processing data...
accept: tutorialspoint.com
running outside... 3 s
running outside... 4 s
running outside... 5 s

delayedExecutor() निर्दिष्ट देरी के बाद असिंक्रोनस टास्क निष्पादन को शेड्यूल करने के लिए उपयोगी है।

  1. Java में pack() मेथड का उपयोग कब कर सकते हैं? Java में pack() मेथड का उपयोग कब कर सकते हैं?

    pack() मेथड Java में Window क्लास में परिभाषित है और यह फ्रेम को इस तरह आकार देता है कि इसकी सभी सामग्री उनके पसंदीदा आकार पर या उससे ऊपर हैं। pack() मेथड का एक विकल्प setSize() या setBounds() मेथड्स को कॉल करके फ्रेम आकार को स्पष्ट रूप से स्थापित करना है। सामान्य तौर पर, pack() मेथड का उपयोग setSiz

  1. Java में setBounds() विधि का उपयोग क्या है? Java में setBounds() विधि का उपयोग क्या है?

    लेआउट प्रबंधक जोड़े गए घटकों की स्थिति और आकार को स्वचालित रूप से तय करने के लिए उपयोग किए जाते हैं। लेआउट प्रबंधक की अनुपस्थिति में, घटकों की स्थिति और आकार को मैन्युअल रूप से सेट करना पड़ता है। ऐसी स्थिति में setBounds() विधि का उपयोग स्थिति और आकार सेट करने के लिए किया जाता है। घटकों की स्थिति औ

  1. - Java में String क्लास के intern() मेथड का उपयोग कब करें?

    String क्लास का intern() मेथड Java में स्ट्रिंग डुप्लिकेशन समस्याओं से निपटने के लिए उपयोग किया जा सकता है। intern() का उपयोग करके हम डुप्लिकेट स्ट्रिंग इंस्टेंसेस द्वारा खपत की गई बहुत सारी मेमोरी बचा सकते हैं। एक स्ट्रिंग डुप्लिकेट है यदि इसमें另一个 स्ट्रिंग के समान कंटेंट है लेकिन यह अलग मेमोरी लोक