Corso Mastering Programmazione Multithreading:
Formazione per sviluppatori C#
Durata: 2 giorni
Live Online
In presenza
Live Online
In presenza
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 ecertificati
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: