Sobes.tech
Junior — Middle

კორუტინების კონტექსტში Job და Deferred ფუნქციების შორის რა განსხვავებაა?

sobes.tech AI

პასუხი AI-სგან

Kotlin-এ, Job এবং Deferred দুটি ধরণের কাজ, যা অ্যাসিঙ্ক্রোন অপারেশন প্রতিনিধিত্ব করে, তবে বিভিন্ন ক্ষমতা সহ:

  • Job — এটি একটি মৌলিক ধরণ যা একটি ফলাফল ছাড়াই কাজ প্রতিনিধিত্ব করে। এটি করুটিনের জীবনচক্র নিয়ন্ত্রণ করতে দেয়: শুরু করা, বাতিল করা, অবস্থা অনুসরণ করা।

  • Deferred<T> — এটি Job এর একটি উপশ্রেণী, যা অতিরিক্তভাবে T ধরণের ফলাফল ফেরত দেয়। এটি তখন ব্যবহৃত হয় যখন অ্যাসিঙ্ক্রোন অপারেশনের ফলাফল পেতে হয়। ফলাফল পেতে await() ফাংশন কল করা হয়, যা সম্পাদনাকে থামিয়ে দেয় যতক্ষণ না ফলাফল প্রস্তুত হয়।

উদাহরণ:

val job: Job = launch {
    // কোনও ফলাফল ছাড়াই কাজ সম্পাদন করে
}

val deferred: Deferred<Int> = async {
    // কাজ সম্পাদন করে এবং ফলাফল ফেরত দেয়
    42
}

runBlocking {
    deferred.await() // ফলাফল পায়
}

মূল পার্থক্য হল, Job ফলাফল ফেরত দেয় না, যখন Deferred — দেয় এবং এটি await() এর মাধ্যমে পেতে হয়।