Junior — Middle
Paaiškinkite Callable sąsajos koncepciją ir jos tikslą programavime.
sobes.tech AI
Atsakymas iš AI
„Java“ kalbų Callable<V> sąsaja reprezentuoja užduotį, kuri gali būti vykdoma atskirame sraute ir grąžina rezultatą tipo V. Skirtingai nuo Runnable sąsajos, kuri negrąžina rezultato ir negali mesti patikrintų išimčių, Callable leidžia grąžinti reikšmę ir mesti išimtis.
Tai ypač naudinga dirbant su daugiabriauniais ir asinchroniniais užduočių vykdymais, pavyzdžiui, naudojant ExecutorService paleisti užduotis ir gauti jų rezultatus per Future objektus.
Naudojimo pavyzdys:
import java.util.concurrent.Callable;
public class SumTask implements Callable<Integer> {
private int a, b;
public SumTask(int a, int b) {
this.a = a;
this.b = b;
}
@Override
public Integer call() throws Exception {
return a + b;
}
}
Tada šią užduotį galima perduoti ExecutorService ir gauti rezultatą:
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(new SumTask(5, 10));
Integer result = future.get(); // rezultatas bus 15
executor.shutdown();