Corso Mastering Programmazione Multithreading:
Formazione per sviluppatori C#

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 sul Multithreading insegna a gestire attività concorrenti all’interno di un’applicazione, sfruttando thread separati per migliorare efficienza e reattività. I partecipanti imparano a progettare software performante, affrontando le sfide della sincronizzazione e della condivisione delle risorse in ambienti complessi e ad alta intensità di calcolo.

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

Programma del Corso

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

Non sono richiesti prerequisiti specifici. Per la partecipazione è consigliata una conoscenza di base della programmazione a oggetti e dei concetti fondamentali del multithreading.

Perché scegliere il corso

Il corso di formazione Mastering Programmazione Multithreading è pensato per chi desidera padroneggiare lo sviluppo di applicazioni performanti e scalabili. Fornisce competenze avanzate per sfruttare al meglio la programmazione concorrente, migliorando efficienza e reattività nei contesti aziendali più complessi e dinamici.

€ 1100 + IVA a partecipante

Quotazione garantita per formazione online con minimo 3 iscritti della stessa azienda

Quotazione garantita per formazione online
con minimo 3 iscritti della stessa azienda

A chi è rivolto

    • Sviluppatori C#

Cosa troverai

corso mastering programmazione multithreading

Formatori esperti certificati

I nostri docenti operano professionalmente in materia di sicurezza informatica in ambienti aziendali.

corso mastering programmazione multithreading

Risorse formative e laboratori aggiornati

Il corso è aggiornato costantemente per garantire un’esperienza formativa coerente con l’evoluzione degli attacchi Ransomware.

corso mastering programmazione multithreading

Multicanalità

Potrai scegliere di svolgere il corso sia in presenza che online.

corso mastering programmazione multithreading

Certificato di completamento

Riceverai un attestato di partecipazione personalizzato in formato Open Badge.

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:

Please enable JavaScript in your browser to complete this form.
My Agile Privacy

Questo sito utilizza cookie tecnici e di profilazione. 

Puoi accettare, rifiutare o personalizzare i cookie premendo i pulsanti desiderati. 

Chiudendo questa informativa continuerai senza accettare. 

Inoltre, questo sito installa Google Analytics nella versione 4 (GA4) con trasmissione di dati anonimi tramite proxy. 

Prestando il consenso, l'invio dei dati sarà effettuato in maniera anonima, tutelando così la tua privacy.