Concurrency মধ্যম

CompletableFuture ব্যবহার করে কোনো ব্লক না করে অ্যাসিঙ্ক্রোনাস অপারেশনগুলিকে চেইন করুন।

✕ Pre-Java 8
Future<String> future =
    executor.submit(this::fetchData);
String data = future.get(); // blocks
String result = transform(data);
✓ Java 8+
CompletableFuture.supplyAsync(
    this::fetchData
)
.thenApply(this::transform)
.thenAccept(IO::println);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
🔗

চেইনেবল (Chainable)

অ্যাসিঙ্ক স্টেপগুলিকে একটি পঠনযোগ্য পাইপলাইনে সাজানো যায়।

🚫

নন-ব্লকিং (Non-blocking)

কোনো থ্রেড ফলাফলের জন্য অলসভাবে অপেক্ষা করে না।

🛡️

এরর হ্যান্ডলিং (Error Handling)

exceptionally() এবং handle() মেথডগুলো পরিষ্কারভাবে এরর রিকভারি (error recovery) করার সুবিধা দেয়।

পুরনো পদ্ধতি
ব্লকিং Future.get()
আধুনিক পদ্ধতি
CompletableFuture
JDK থেকে
8
কঠিনতা
মধ্যম
CompletableFuture চেইনিং (Chaining)
উপলব্ধ

JDK 8 (মার্চ 2014) থেকে ব্যাপকভাবে উপলব্ধ

CompletableFuture নন-ব্লকিং অ্যাসিঙ্ক (async) পাইপলাইন তৈরি করতে সাহায্য করে। আপনি thenApply, thenCompose, thenAccept মেথডগুলো ব্যবহার করে অপারেশনগুলোকে চেইন করতে পারবেন। exceptionally() মেথড দিয়ে এরর (error) হ্যান্ডেল করা যায় এবং allOf/anyOf মেথড দিয়ে একাধিক ফিউচারকে একত্রিত করা যায়।