CodeGym
AI Academy
Promozione
CodeGym University
Learning
Corsi
Tasks
Surveys & Quizzes
Games
Help
Schedule
Community
Users
Forum
Chat
Articles
Success stories
Activity
Reviews
Subscriptions
Tema chiaro

Lezioni

  • Recensioni
  • Chi siamo
Inizia
Inizia a imparare
Start learning now
  • I miei progressi
  • Corsi
  • Mappa Quest
  • Lezioni
  • Introduzione a CompletableFuture

    JAVA 25 SELF
    Livello 55,Lezione 0
    In questa lezione capiremo perché il codice sincrono porta a blocchi, quali limiti aveva Future (ad esempio il get() bloccante) e come la classe CompletableFuture del package java.util.concurrent cambi il modo di lavorare con l’asincronia. Faremo pratica avviando attività in background con supplyAsync, registrandoci al risultato con thenAccept/ thenApply, discuteremo il ruolo del pool ForkJoinPool e gli errori tipici: uso di get()/ join() nel thread principale, assenza di gestione degli errori tramite exceptionally/ handle e altro.
    Disponibile
  • Attività asincrone: thenApply, thenAccept, thenRun

    JAVA 25 SELF
    Livello 55,Lezione 1
    Analizziamo l’avvio e la composizione di calcoli asincroni con CompletableFuture: come avviare attività tramite supplyAsync e runAsync, in cosa differiscono gli handler thenApply, thenAccept, thenRun e quando scegliere le loro versioni asincrone thenApplyAsync/ thenAcceptAsync/ thenRunAsync. Parleremo dei thread di esecuzione ( ForkJoinPool o un tuo Executor), dei tipi di risultato ( CompletableFuture<T>, CompletableFuture<Void>) e degli errori tipici: chiamate bloccanti get()/ join(), errori non gestiti senza exceptionally/ handle/ whenComplete, nonché il tentativo di usare il risultato all’interno di thenRun.
    Disponibile
  • Combinare CompletableFuture: thenCombine, allOf, anyOf

    JAVA 25 SELF
    Livello 55,Lezione 2
    Come parallelizzare le attività e unire i risultati con CompletableFuture: unione di due risultati tramite thenCombine/ thenCombineAsync, attesa di un insieme di attività tramite allOf, reazione alla risposta più veloce tramite anyOf. Analizzeremo le firme, esempi pratici con supplyAsync, l’elaborazione non bloccante ( thenAccept, thenRun), nonché le sottigliezze degli errori e la loro gestione ( exceptionally, handle, whenComplete). Alla fine — una tabella compatta di confronto dei metodi.
    Disponibile
  • Gestione degli errori nel codice asincrono: exceptionally, handle

    JAVA 25 SELF
    Livello 55,Lezione 3
    Come intercettare e gestire in modo sicuro le eccezioni nelle catene CompletableFuture: analizziamo i ruoli di exceptionally (valore di fallback in caso di errore), handle (gestore universale di successo/errore) e whenComplete (azioni collaterali senza modificare il risultato). Discuteremo perché la chiamata diretta a get()/ join() incapsula le cause in ExecutionException/ CompletionException, come combinare le fasi ( thenApply, thenAccept) e quali errori tipici evitare.
    Disponibile
  • thenCompose + Executor personalizzato + timeout

    JAVA 25 SELF
    Livello 55,Lezione 4
    Come «concatenare» correttamente i passi asincroni in CompletableFuture con thenCompose e quando basta thenApply; come e perché collegare un pool di thread proprio tramite ExecutorService (invece di ForkJoinPool.commonPool()); come proteggere le catene dall’«attesa infinita» con orTimeout e completeOnTimeout. Alla fine — un esempio pratico con un Executor personalizzato, thenCompose e un timeout, nonché errori tipici e le loro soluzioni.
    Disponibile
Learn
  • Registration
  • Java Course
  • Help with Tasks
  • Pricing
  • Java Syntax
Community
  • Users
  • Articles
  • Forum
  • Chat
  • Success Stories
  • Activity
  • Affiliate Program
Company
  • About us
  • Contacts
  • Reviews
  • Press Room
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym is an online course for learning Java programming from scratch. This course is a perfect way to master Java for beginners. It contains 1200+ tasks with instant verification and an essential scope of Java fundamentals theory. To help you succeed in education, we’ve implemented a set of motivational features: quizzes, coding projects, content about efficient learning, and a Java developer’s career.
Follow us
Lingua dell'interfaccia
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ்
Italiano
Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym