Course Description
Multithreading is a program execution technique that allows for concurrent (simultaneous) execution of two or more parts of a program (threads) for maximum utilization of a CPU. Multi-threaded applications are applications that have two or more threads that run concurrently. Therefore, it is also known as concurrency. With the rise of multi-core machines, multithreading and concurrency concepts are essential skills for Software Engineers.
Multithreaded Programming Using C++ Dec 2025Multithreaded Programming Using C++
What is multithreading?
Example of multithreading
Why use multithreading?
• Multithreading BasicsProgram, processes, and threadsConcurrencyContext SwitchingThread PoolsLocingMutexThread Safety
Program, processes, and threads
Concurrency
Context Switching
Thread Pools
Locing
Mutex
Thread Safety
Issues involved with Multiple ThreadsDeadlockRace conditionsStarvationLiveLock
Deadlock
Race conditions
Starvation
LiveLock
• How to avoid issues with multiple threadsHow to avoid deadlocks?How to avoid race conditions?How to avoid starvation?How to avoid livelocks?
How to avoid deadlocks?
How to avoid race conditions?
How to avoid starvation?
How to avoid livelocks?
Introduction to Multithreading with C++Multithreading with C++Threading ModelsSinglecore and Multicore SystemsConcurrency and Parallel Execution History
Multithreading with C++
Threading Models
Singlecore and Multicore Systems
Concurrency and Parallel Execution History
Thread ManagementThread CreationParameter PassingThread IdentificationBackground ThreadsThread ControlThread Termination
Thread Creation
Parameter Passing
Thread Identification
Background Threads
Thread Control
Thread Termination
• Time ManagementAbsolute/Relative TimesTimeouts
Absolute/Relative Times
Timeouts
Threadsafe Use of ResourcesThreadsafe InitializationThread Local StorageAtomic Memory AccessMutexesLocksDeadlocksCondition VariablesNon-Blocking Resource Access
Threadsafe Initialization
Thread Local Storage
Atomic Memory Access
Mutexes
Locks
Deadlocks
Condition Variables
Non-Blocking Resource Access
Asynchronous OperationsFuturesPromisesPackaged TasksAsync
Futures
Promises
Packaged Tasks
Async
In this course, students are introduced to multithreading and concurrency topics starting from the basics and using C++.
Related Certificates
Earning a Saint Louis University Workforce Center certificate allows you to enhance your career options by networking with peers and establishing valuable industry contacts.
ISACA Professional Certificate
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.
See Details
Artificial Intelligence and Large Language Models Foundations
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud.
See Details
Artificial Intelligence and Machine Learning for Cybersecurity Operations
Artificial intelligence (AI) and machine learning (ML) are revolutionizing the cybersecurity industry. The emergence of ML as a tool for...
See Details