কম্পিউটার টিউটোরিয়াল

জাভা ৯-এ orTimeout() ও completeOnTimeout() মেথডের পার্থক্য

orTimeout() এবং completeOnTimeout() উভয় মেথড CompletableFuture ক্লাসে ডিফাইন করা আছে এবং জাভা ৯-এ যোগ করা হয়েছে। orTimeout() মেথড নির্দিষ্ট করে যে যদি কোনো টাস্ক নির্দিষ্ট সময়ের মধ্যে কমপ্লিট না হয়, তবে প্রোগ্রাম এক্সিকিউশন বন্ধ করে TimeoutException থ্রো করবে। অন্যদিকে completeOnTimeout() মেথড CompletableFuture-কে প্রদত্ত ভ্যালু দিয়ে কমপ্লিট করে। যদি সেটি দেওয়া টাইমআউটের আগে কমপ্লিট না হয়।

orTimeout() সিনট্যাক্স

public CompletableFuture<T> 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<T> 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. জাভাতে Gson-এর fromJson() এবং toJson() মেথডের পার্থক্য

  2. জাভাতে Collection এবং Collections-এর পার্থক্য

  3. জাভাতে wait() এবং sleep() মেথডের পার্থক্য

  4. জাভাতে compareTo() এবং compare() মেথডের পার্থক্য কী?