Sela

Concurrency and Multithreading with Modern C++

Description
Course will combine theory and hands-on live code demonstration. Attendees will practice learnt concepts and techniques by solving specially designed exercises. Hands-on practice is ~30% of each session time.
Intended audience
Software engineers with hands-on experience using C++11/14/17. Prior multithreading experience is not required but is recommended.

Topics

What is parallelism?
What is concurrency?
Thread vs. Process
Review of modern CPUs and memory architecture
Amdhal Law.
What is a thread – OS perspective
Starting new threads
Passing arguments to new threads
Background threads
Getting results from new threads
Join and dispatch
Yield and sleep
Problems with sharing state
Threads and global variables
Threads and thread_local variables
Atomic operations.
Once flags
Race conditions.
Synchronization with mutex
Mutex types
Working with RAII-based locks
Unique locks
Deadlocks
Deadlocks avoidance
Shared Locks
Why no upgradable locks
Bias and Fairness
Condition variables and mutex
Implementing waitable data structures.
Spurious wakeup and avoidance
std::async and std::future
Packaged tasks
jthread
Stop tokens
Counting semaphores
Barrier
Latch
Execution policies in C++17 and C++20
What algorithms are available?
Demo with Intel Thread Building Blocks

רוצה לדבר עם יועץ?

האם אתה בטוח שאתה רוצה לסגור את הטופס ולאבד את כל השינויים?