Sobes.tech
Junior — Middle

Mi a Future osztály szerepe Java-ban, és mire szolgál?

sobes.tech MI

Válasz az MI-től

A Future osztály Java-ban egy olyan eredményt képvisel egy aszinkron műveletből, amely a jövőben befejeződhet. Arra tervezték, hogy:

  • Megszerezze egy másik szálon végrehajtott számítás eredményét.
  • Ellenőrizze, hogy a művelet befejeződött-e (isDone()) vagy törölték-e (isCancelled()).
  • A feladat törlésének lehetőségét (cancel()).

Az ExecutorService-vel együtt használják az aszinkron feladatok kezelésére. Például, küldhet egy feladatot végrehajtásra, és folytathatja a munkát, majd megkaphatja az eredményt, amikor az készen áll.

Példa:

ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(() -> {
    Thread.sleep(1000); // hosszú művelet szimulációja
    return 42;
});

// Itt más műveleteket is végrehajthat

try {
    Integer result = future.get(); // blokkol, amíg az eredmény nem lesz kész
    System.out.println("Eredmény: " + result);
} catch (InterruptedException | ExecutionException e) {
    e.printStackTrace();
}
executor.shutdown();