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
  • Lettura e scrittura di file multithread

    JAVA 25 SELF
    Livello 59,Lezione 0
    Guida pratica al lavoro parallelo con i file in Java: quando il multithreading accelera davvero l’I/O e quando no, scelta degli strumenti — Thread, pool di thread tramite ExecutorService, asincronia con CompletableFuture e stream paralleli — nonché lettura di file di grandi dimensioni a blocchi tramite FileChannel, scrittura sicura in un log condiviso e limiti di SO/FS. Analizziamo i pattern di avvio dei task, la configurazione dei pool, i metodi shutdown()/ awaitTermination() e gli errori tipici.
    Disponibile
  • Elaborazione parallela dei file: ForkJoin, Parallel Streams

    JAVA 25 SELF
    Livello 59,Lezione 1
    Guida pratica alla parallelizzazione delle attività sui file in Java: come abilitare il parallelismo nell’ Stream API con i metodi parallel()/ parallelStream(), come funziona e si configura ForkJoinPool e quando conviene usare RecursiveTask. Vedremo dove il parallelismo accelera davvero l’I/O, come gestire il pool di thread comune e come chiudere in sicurezza le risorse ( try-with-resources). In chiusura — uno sguardo rapido all’accesso posizionale tramite FileChannel per leggere/scrivere porzioni di file di grandi dimensioni.
    Disponibile
  • Attraversamenti paralleli del file system: Files.walk + parallel() e ForkJoin

    JAVA 25 SELF
    Livello 59,Lezione 2
    Come velocizzare l'attraversamento di directory grandi e l'elaborazione di migliaia di file: usiamo Files.walk() e stream paralleli tramite parallel(), comprendiamo il ruolo di ForkJoinPool.commonPool() e impostiamo il grado di parallelismo. Vediamo quando conviene passare a ExecutorService, in cosa differiscono i task CPU-bound e IO-bound, scriviamo un esempio di conteggio delle righe in tutti i file ".java" e fissiamo le best practice.
    Disponibile
  • Suddivisione di file di grandi dimensioni in chunk

    JAVA 25 SELF
    Livello 59,Lezione 3
    Come velocizzare l'elaborazione di file da gigabyte: li suddividiamo in chunk (chunking), usiamo l'accesso posizionale tramite FileChannel e buffer memory-mapped MappedByteBuffer, parallelizziamo i calcoli con ExecutorService. Esamineremo i metodi chiave di I/O posizionale: position(...), read(...), write(...), i criteri per scegliere la dimensione del chunk, un esempio di conteggio parole in parallelo e gli errori tipici (confini dei chunk, risorse, numero di thread).
    Disponibile
  • Pipeline di elaborazione dei file: producer–consumer

    JAVA 25 SELF
    Livello 59,Lezione 4
    Analizziamo come organizzare una pipeline di elaborazione dei file secondo il pattern Producer–Consumer con uno scambio sicuro tramite BlockingQueue (ad esempio ArrayBlockingQueue), come funzionano le operazioni bloccanti put() e take(), perché serve il meccanismo di backpressure e come terminare correttamente i thread usando la “poison pill” (ad esempio "__END__", e non null). Avviamo i consumer tramite ExecutorService, aggiungiamo una visualizzazione della pipeline e analizziamo gli errori tipici.
    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