Corso Mastering Programmazione Multithreading:
Formazione per sviluppatori C#

Durata: 2 giorni

icona web
Live Online
in presenza
In presenza
icona web
Live Online
in presenza
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.

icona live

Sessioni live interattive

Lezioni in diretta con spazio per domande e confronto.
icona pratico

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

icona trainer

Trainer esperti e certificati

Formatori con esperienza concreta in ambito aziendale.
icona aggiornamento

Contenuti sempre aggiornati

Materiale sempre in linea con le novità del settore.
icona open badge

Open Badge digitale

Un certificato digitale, verificabile e condivisibile online.
icona esercitazioni

Esercitazioni guidate

Attività pratiche con il supporto diretto del docente.
icona registrazione

Registrazioni disponibili

Rivedi le lezioni quando vuoi per 3 mesi.
icona supporto

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

Seleziona il numero di partecipanti:
One to One
2
3
Più di 3

€ 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.

ethical hacker open badge web

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:

Promo ×