CompletableFuture চেইনিং (Chaining)
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
কঠিনতা
মধ্যম
JDK সমর্থন
CompletableFuture চেইনিং (Chaining)
উপলব্ধ
JDK 8 (মার্চ 2014) থেকে ব্যাপকভাবে উপলব্ধ
কীভাবে কাজ করে
CompletableFuture নন-ব্লকিং অ্যাসিঙ্ক (async) পাইপলাইন তৈরি করতে সাহায্য করে। আপনি thenApply, thenCompose, thenAccept মেথডগুলো ব্যবহার করে অপারেশনগুলোকে চেইন করতে পারবেন। exceptionally() মেথড দিয়ে এরর (error) হ্যান্ডেল করা যায় এবং allOf/anyOf মেথড দিয়ে একাধিক ফিউচারকে একত্রিত করা যায়।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ