Sobes.tech
Junior — Middle

Java-da asinxron əməliyyatlar üçün Callable və Future interfeysləri necə qarşılıqlı əlaqə qurur?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da, Callable interfeysi, nəticə qaytaran və istisnalar ata bilən vəzifəni təmsil edir. O, Runnable-ə bənzəyir, lakin dəyəri qaytarma imkanı ilə.

Future, başqa bir iş parçasında icra olunan asinxron əməliyyatın nəticəsini təmsil edən obyektidir. Future ilə vəzifənin tamamlanıb-tamamlanmadığını yoxlamaq, nəticəni almaq və ya icraatı ləğv etmək mümkündür.

Birlikdə, Callable və Future, nəticəni sonra almaq imkanı ilə vəzifələri asinxron şəkildə icra etmək üçün istifadə olunur. Məsələn, ExecutorService vasitəsilə, Callable-ı icra üçün göndərmək və Future əldə etmək olar:

ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<Integer> task = () -> {
    // uzun müddətli əməliyyat
    Thread.sleep(1000);
    return 42;
};
Future<Integer> future = executor.submit(task);

// ... kodun başqa yerində
if (future.isDone()) {
    Integer result = future.get();
    System.out.println("Nəticə: " + result);
}
executor.shutdown();

Beləliklə, Callable, nəticə ilə vəzifəni təsvir edir və Future, bu vəzifənin nəticəsini asinxron idarə etməyə və almağa imkan verir.

Java-da asinxron əməliyyatlar üçün Callable və Future… - sobes.tech