CORSO MASTERING PROGRAMMAZIONE MULTITHREADING:

Formazione per sviluppatori C#

DURATA: 2 GIORNI

Il multithreading è una tecnica di programmazione che consente a un’applicazione di eseguire diverse attività contemporaneamente suddividendole in thread separati all’interno del processo principale. Ogni thread può svolgere un compito specifico e operare in modo indipendente, migliorando l’efficienza e la reattività del software. Il multithreading viene ampiamente utilizzato in applicazioni che richiedono una gestione efficiente delle risorse, sebbene richieda attenzione nella sincronizzazione dei thread e nella gestione delle risorse condivise.

multithreading

Il Corso Mastering Programmazione Multithreading rappresenta una formazione intensiva della durata di due giorni progettato per fornire una conoscenza approfondita e pratica della gestione dei thread in applicazioni C#. Il corso copre sia i concetti di base che quelli avanzati del multithreading, consentendo ai partecipanti di diventare esperti nella scrittura di applicazioni multithread efficienti e robuste.

Programma del corso Mastering Programmazione Multithreading

Modulo 1: Getting Started

  • Introduction and Concepts
    • Join and Sleep
    • How Threading Works
    • Threads vs Processes
    • Threading’s Uses and Misuses
  • Creating and Starting Threads
    • Passing Data to a Thread
    • Naming Threads
    • Foreground vs Background
    • Thread Priority
    • Exception Handling
  • Thread Pooling
    • Thread Pooling via TPL
    • Thread Pooling Without TPL
    • Optimizing the Thread Pool

Modulo 2: Basic Synchronization

  • Synchronization Essentials
    • Blocking
    • Blocking Versus Spinning
    • ThreadState
  • Locking
    • Enter and Monitor.Exit
    • The Synchronization Object
    • When to Lock
    • Locking and Atomicity
    • Nested Locking
    • Deadlocks
    • Performance
    • Mutex
    • Semaphore
  • Thread Safety
    • .NET Framework Types
    • Application Servers
    • Rich Client Applications
    • Immutable Objects
  • Event Wait Handles
    • AutoResetEvent
    • ManualResetEvent
    • CountdownEvent
    • Creating a Cross-Process EventWaitHandle
    • Pooling Wait Handles
    • WaitAny, WaitAll, and SignalAndWait
  • Synchronization Contexts
    • Reentrancy

Modulo 3: Using Threads

  • Event-Based Asynch Pattern
  • BackgroundWorker
    • Using BackgroundWorker
    • Subclassing BackgroundWorker
  • Interrupt and Abort
    • Interrupt
    • Abort
  • Safe Cancellation
    • Cancellation Tokens
  • Lazy Initialization
    • Lazy of T class
    • LazyInitializer
  • Thread-Local Storage
    • [ThreadStatic]
    • ThreadLocal of T class
    • GetData and SetData
  • Timers
    • Multithreaded Timers
    • Single-Threaded Timers

Modulo 4: Advanced Threading

  • Nonblocking Synchronization
    • Memory Barriers and Volatility
    • Interlocked
  • Signaling with Wait and Pulse
    • How to Use Wait and Pulse
    • Producer/Consumer Queue
    • Wait Timeouts
    • Two-Way Signaling
    • Simulating Wait Handles
    • Writing a CountdownEvent
    • Thread Rendezvous
  • The Barrier Class
  • Reader/Writer Locks
    • Upgradeable Locks / Recursion
  • Suspend and Resume
  • Aborting Threads
    • Complications with Thread.Abort
    • Ending Application Domains
    • Ending Processes

Modulo 5: Parallel Programming

  • Parallel Programming
  • Task Parallelism
    • Creating and Starting Tasks
    • Waiting on Tasks
    • Exception-Handling Tasks
    • Canceling Tasks
    • Continuations
    • Task Schedulers and UIs
    • TaskFactory
    • TaskCompletionSource
  • Working with AggregateException
    • Flatten and Handle
  • Concurrent Collections
    • IProducerConsumerCollection
    • ConcurrentBag
    • BlockingCollection
  • SpinLock and SpinWait

Modulo 6: Asynchronous Programming

  • Async / Await

Requisiti del corso Mastering Programmazione Multithreading

Il Corso Mastering Programmazione Multithreading è rivolto a:

  • sviluppatori C# che desiderano acquisire una comprensione approfondita della gestione dei thread in C# e diventare esperti nella scrittura di applicazioni multithread efficienti.
  • sviluppatori con esperienza di base in C# che desiderano espandere le loro competenze nella gestione dei thread e nella programmazione parallela.

Il corso fornisce una base solida per sviluppatori che lavorano su applicazioni ad alte prestazioni, server, applicazioni desktop e altro ancora.

multithreading
multithreading

Cosa saprai fare alla fine del corso Mastering Programmazione Multithreading

Al termine del corso i partecipanti saranno in grado di:

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

    Impara facendo…

    Metti in pratica ciò che apprendi direttamente in ambiente Virtuale

    Durante il corso avrai la possibilità di accedere ad ambienti basati su Hypervisor Microsoft Hyper-V dove andrai a testare le nozioni apprese simulando scenari anche complessi.

    corso mastering programmazione multithreading
    materiale formativo corso

    Materiale per il corso Mastering Programmazione Multithreading a disposizione sempre aggiornato

    Il corso è continuamente aggiornato sia come ambiente di programma sia come ambiente di laboratorio

    Oltre al materiale in formato PDF relativo a tutti i moduli del corso, saranno messi a disposizione ulteriori e-book di ulteriore approfondimento sui temi più importanti.

    Continuum Formativo

    Viene creato un supporto Telegram attraverso il quale, per una durata di 30 gg, è prevista la partecipazione ad un gruppo di lavoro all’interno del quale saranno proposti dei “reminder” e dei suggerimenti per l’utilizzo professionale di quanto appreso, in modo da permettere di proseguire con il processo di autoformazione.

    corso mastering programmazione multithreading

    Prenota il tuo corso Mastering Programmazione Multithreading

    Scegli le date che preferisci, indicaci se desideri un corso presso la tua azienda, on-line o in Aula a Verona

    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:

    Acconsento al trattamento dei dati personali ai sensi del Regolamento Ue 679/2016. Vedi Privacy e Cookie Policy

    Desideri parlare con l’insegnante?

    Il contatto Telefonico è attivo dal lunedì al venerdì dalle 8:00 alle 18:00 al numero 0452456669.

    FAQ CORSO MASTERING PROGRAMMAZIONE MULTITHREADING

    Quanto costa?

    Il corso ha dei costi fissi ed una tariffa per singolo partecipante, sostanzialmente differente da quella relativa alla partecipazione in gruppo della stessa azienda, contattaci per un preventivo personalizzato in base al numero di partecipanti.

    E' possibile partecipare al corso nella mia azienda?

    Se hai difficoltà a staccarti dalla tua azienda e devi in qualche modo gestire la presenza in sede, possiamo organizzare il corso direttamente presso la tua sede: ci basta un’aula ed eventualmente un videoproiettore; al resto ci pensiamo tutto noi.

    Il corso è propedeutico all'esame di certificazione microsoft?

    Il corso non prevede un corrispettivo esame di certificazione Microsoft, ma è orientato alle competenze.

    Il corso prevede dei laboratori

    Il corso prevede l’utilizzo di laboratori da noi personalizzati al fine di testare le nozioni apprese durante la parte teorica del corso.