Sobes.tech
Junior — Middle

Използвали ли сте интерфейса Callable за изпълнение на задачи в Java?

sobes.tech AI

Отговор от AI

Да, интерфейсът Callable в Java се използва за изпълнение на задачи, които връщат резултат и могат да хвърлят изключения. За разлика от Runnable, Callable позволява да се получи резултатът от изпълнението чрез Future.

Пример за използване на Callable:

import java.util.concurrent.*;

public class CallableExample {
    public static void main(String[] args) throws Exception {
        ExecutorService executor = Executors.newSingleThreadExecutor();

        Callable<Integer> task = () -> {
            // Някаква изчислителна задача
            Thread.sleep(1000);
            return 123;
        };

        Future<Integer> future = executor.submit(task);

        System.out.println("Задачата е стартирана");

        Integer result = future.get(); // Изчакваме резултата
        System.out.println("Резултат: " + result);

        executor.shutdown();
    }
}

Този подход е полезен за асинхронно изпълнение на задачи с възможност за получаване на резултати и обработка на изключения.