Corso Mastering Programmazione Multithreading:
Formazione per sviluppatori C#
Corso Mastering Programmazione Multithreading: Formazione per sviluppatori C#
Durata: 2 giorni
Live Online
In presenza
Live Online
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
Formatori esperti certificati
I nostri docenti operano professionalmente in materia di sicurezza informatica in ambienti aziendali.
Risorse formative e laboratori aggiornati
Il corso è aggiornato costantemente per garantire un’esperienza formativa coerente con l’evoluzione degli attacchi Ransomware.
Multicanalità
Potrai scegliere di svolgere il corso sia in presenza che online.
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: