Sobes.tech
Junior — Middle

Kas olete kasutanud Java ülesannete täitmiseks Callable liidest?

sobes.tech AI

Vastus AI-lt

Jah, Java Callable liides kasutatakse ülesannete täitmiseks, mis tagastavad tulemuse ja võivad visata erandeid. Erinevalt Runnable'ist võimaldab Callable saada täitmise tulemust Future kaudu.

Callable kasutamise näide:

import java.util.concurrent.*;

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

        Callable<Integer> task = () -> {
            // Mõni arvutusülesanne
            Thread.sleep(1000);
            return 123;
        };

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

        System.out.println("Ülesanne käivitus");

        Integer result = future.get(); // Ootame tulemust
        System.out.println("Tulemus: " + result);

        executor.shutdown();
    }
}

See lähenemine on kasulik asünkroonsete ülesannete täitmiseks võimalusega saada tulemusi ja käsitleda erandeid.