• June 19, 2024 - June 20, 2024
day
:
hr
:
min
:
sec
DatesNumber Of Ticketsprice
Until 01.06.2411800 ILS+ VAT
Until 01.06.2457200 ILS +VAT + 1 FREE
After 01.06.2412100 ILS+ VAT

Concurrency and Multithreading with Modern C++

Objectives

  • Cover C++ memory model.
  • Covers multithreading features in C++17 (including C++14/11)
  • Covers Multithreading and Concurrency features in C++20.
  • Covers C++17 parallel standard algorithms.
  • Covers best practices and common pitfalls.

Audience

Software engineers with hands-on experience using C++11/14/17. Prior multithreading experience is not required but is recommended.

Delivery

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

Schedule

  • 2 days

Syllabus

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

Schedule:

09:00 - 15:00 Hayarkon 2 Bnei Brak Floor 17

19.06+20.06.24

  • Time : 09:00 - 15:00 (Asia/Jerusalem)
Days
Hours
Minutes
Seconds

hurry up

₪800

per ticket/person - vat excluded

early birds registration

Don’t hesitate and buy tickets today – All tickets are at a special price until 01.06.24. Hope to see you there :)

Conference Proposal (#3)

Registration Form For STP 2024 Event

 

This form will be filled out by the company representative approved to commit on behalf of the company for all matters


Choose the Tracks for the registering Attendees

If there are several participants on your behalf, you can add fields to register the respective participants by clicking on the plus sign


Confirmation of the company / Attendee committing to payment


+ VAT ( In ILS)
Conference Proposal (#3)

Registration Form For STP 2024 Event

 

This form will be filled out by the company representative approved to commit on behalf of the company for all matters


Choose the Tracks for the registering Attendees

If there are several participants on your behalf, you can add fields to register the respective participants by clicking on the plus sign


Confirmation of the company / Attendee committing to payment


+ VAT ( In ILS)