Corso Mastering Programmazione Multithreading:
Formazione per sviluppatori C#
Durata: 2 giorni
Formazione Programmazione Multithreading
Il Corso Programmazione Multithreading porta i partecipanti dentro le logiche della concorrenza applicativa, mostrando come sfruttare thread separati per ottimizzare efficienza e reattività del software. Attraverso un approccio tecnico e pratico, vengono affrontate le sfide legate alla sincronizzazione e alla gestione delle risorse in ambienti ad alta intensità di calcolo, fornendo strumenti e competenze per sviluppare applicazioni performanti e scalabili.
Un percorso pensato per professionisti e sviluppatori che vogliono padroneggiare la programmazione concorrente e applicarla in modo efficace nei contesti aziendali più complessi e dinamici.
Sessioni live interattive
Lezioni in diretta con spazio per domande e confronto.Approccio pratico
Esercitazioni e casi reali per mettere in pratica ciò che impari.Cosa imparerai
- Avere una base solida dei concetti di base del multithreading, compresi i thread vs i processi, i meccanismi di creazione e avvio dei thread e le sfide comuni associate al multithreading
- Imparare a gestire la sincronizzazione tra i thread, inclusi i concetti di locking, deadlock e l’uso di oggetti di sincronizzazione avanzati come Mutex e Semaphore
- Imparare a utilizzare i thread in scenari comuni come la gestione di eventi asincroni, la cancellazione sicura dei thread e l’inizializzazione pigra
- Approfondire argomenti avanzati come la sincronizzazione senza blocco, la segnalazione con Wait e Pulse, le barriere di memoria e i lock per lettura/scrittura
- Introdurre la programmazione parallela e l’uso di Task per sfruttare appieno le capacità multithread dei moderni processori
- Fornire una panoramica sull’asincronia con async/await, consentendo ai partecipanti di scrivere codice asincrono pulito ed efficiente
I vantaggi della formazione Nexsys
Trainer esperti e certificati
Formatori con esperienza concreta in ambito aziendale.Contenuti sempre aggiornati
Materiale sempre in linea con le novità del settore.Open Badge digitale
Un certificato digitale, verificabile e condivisibile online.Esercitazioni guidate
Attività pratiche con il supporto diretto del docente.Registrazioni disponibili
Rivedi le lezioni quando vuoi per 3 mesi.Supporto post-corso
Assistenza anche dopo la fine del corso, per chiarimenti e approfondimenti.Personalizza la tua formazione
Il corso può essere riprogettato su misura delle esigenze formative della tua azienda o di un gruppo di lavoro. Contenuti, durata e modalità sono personalizzabili per garantire coerenza con i tuoi obiettivi, tempi e budget.
Programma del Corso
Modulo 1: Introduzione
- Introduzione e concetti fondamentali
- Join e Sleep
- Come funziona il threading
- Thread vs Processi
- Utilizzi e abusi del multithreading
- Creazione e avvio dei thread
- Passaggio di dati a un thread
- Assegnare un nome ai thread
- Thread in foreground vs background
- Priorità dei thread
- Gestione delle eccezioni
- Thread Pooling
- Thread Pooling con TPL
- Thread Pooling senza TPL
- Ottimizzazione del Thread Pool
Modulo 2: Sincronizzazione di base
- Fondamenti della sincronizzazione
- Blocking
- Blocking vs Spinning
- ThreadState
- Locking
- Monitor.Enter e Monitor.Exit
- L’oggetto di sincronizzazione
- Quando utilizzare un lock
- Locking e atomicità
- Lock annidati
- Deadlock
- Performance
- Mutex
- Semaphore
- Sicurezza dei Thread
- Tipi del .NET Framework
- Application Server
- Applicazioni Rich Client
- Oggetti immutabili
- Event Wait Handles
- AutoResetEvent
- ManualResetEvent
- CountdownEvent
- Creazione di un EventWaitHandle tra processi
- Pooling dei Wait Handles
- WaitAny, WaitAll, and SignalAndWait
- Synchronization Contexts
- Reentrancy
Modulo 3: Utilizzo dei Thread
- Event-Based Asynch Pattern
- BackgroundWorker
- Uso di BackgroundWorker
- Creazione di sottoclassi di BackgroundWorker
- Interrupt and Abort
- Interrupt
- Abort
- Cancellazione sicura
- Cancellation Tokens
- Lazy Initialization
- Classe Lazy<T>
- LazyInitializer
- Thread-Local Storage
- Attributo [ThreadStatic]
- Classe ThreadLocal<T>
- GetData e SetData
- Timers
- Timer multithread
- Timer single-thread
Modulo 4: Threading avanzato
- Sincronizzazione non bloccante
- Memory Barriers e volatilità
- Interlocked
- Segnalazioni con Wait e Pulse
- Come usare Wait e Pulse
- Coda Producer/Consumer
- Timeout delle operazioni di attesa
- Segnalazione bidirezionale
- Simulazione dei Wait Handle
- Scrivere un CountdownEvent
- Thread Rendezvous
- Classe Barrier
- Lock Reader/Writer
- Lock aggiornabili / Ricorsione
- Suspend e Resume
- Abort dei thread
- Complicazioni con Thread.Abort
- Terminazione degli Application Domain
- Terminazione dei processi
Modulo 5: Programmazione parallela
- Programmazione parallela
- Task Parallelism
- Creazione e avvio dei task
- Attesa dei task
- Gestione delle eccezioni nei task
- Cancellazione dei task
- Continuazioni
- Task Scheduler e UI
- TaskFactory
- TaskCompletionSource
- Lavorare con AggregateException
- Flatten e Handle
- Collezioni concorrenti
- IProducerConsumerCollection
- ConcurrentBag
- BlockingCollection
- SpinLock e SpinWait
Modulo 6: Programmazione asincrona
- Async / Await
Requisiti
Non sono richiesti prerequisiti specifici. Per la partecipazione è consigliata una conoscenza di base della programmazione a oggetti e dei concetti fondamentali del multithreading.
Prezzo per formazione dedicata online
€ 1200 + IVA a partecipante
A chi è rivolto
-
- Sviluppatori C#
Open Badge digitale
Con i nostri corsi non ricevi un semplice attestato in PDF, ma un badge digitale riconosciuto a livello internazionale, conforme allo standard Open Badge.
È verificabile, condivisibile su LinkedIn e integrabile nel tuo CV, per valorizzare le competenze acquisite in modo moderno, trasparente e affidabile.
Corsi correlati
Preferisci compilare il modulo? Scrivi i tuoi dati qui sotto
Il servizio telefonico è attivo dal lunedì al venerdì dalle 8:00 alle 18:00 al numero 0452456669. Puoi anche compilare il modulo sottostante: