Sobes.tech
Middle

Ποιος είναι ο σκοπός των κλάσεων Future και CompletableFuture στη Java;

sobes.tech AI

Απάντηση από AI

Οι κλάσεις Future και CompletableFuture στη Java προορίζονται για εργασία με αποτελέσματα ασύγχρονων υπολογισμών.

  • Το Future αντιπροσωπεύει ένα αποτέλεσμα που θα είναι διαθέσιμο στο μέλλον. Με το Future, μπορείτε να ελέγξετε αν ο υπολογισμός έχει ολοκληρωθεί, να λάβετε το αποτέλεσμα (η μέθοδος get μπλοκάρει το νήμα αν το αποτέλεσμα δεν είναι ακόμα έτοιμο) ή να ακυρώσετε την εργασία.

  • Το CompletableFuture επεκτείνει τις δυνατότητες του Future, παρέχοντας ένα βολικό API για σύνθεση ασύγχρονων λειτουργιών, επεξεργασία αποτελεσμάτων χωρίς μπλοκάρισμα, αλυσίδες κλήσεων και διαχείριση εξαιρέσεων. Υποστηρίζει λειτουργικές μεθόδους όπως thenApply, thenAccept, thenCompose και άλλες, διευκολύνοντας την κατασκευή σύνθετων ασύγχρονων σεναρίων.

Παράδειγμα χρήσης του CompletableFuture:

CompletableFuture.supplyAsync(() -> {
    // Μακρά λειτουργία
    return "Αποτέλεσμα";
}).thenApply(result -> {
    // Επεξεργασία αποτελέσματος
    return result.toUpperCase();
}).thenAccept(finalResult -> {
    System.out.println(finalResult);
});