Course curriculum

    1. 1 why threads

    2. 2 overheads of using processes

    3. Key idea behind threads

    4. Single vs multithreaded processes

    5. Benefits of threads

    1. Pthread basics

    2. Creating a thread using Pthread

    3. Passing parameters to thread

    4. Pthread_self, Pthread_equal

    5. Thread termination

    6. Pthread_join--waiting for a thread to terminate

    7. Returning values from thread functions

    8. Waiting for threads

    9. Pthread_detach--detaching a thread

    10. Correct usage of pthread_join

    11. Global variables in threads

    1. Introduction to concurrency--nondeterminism in concurrent programs

    2. What is concurrency? An example.

    3. Race condition and atomic operations

    4. Mutual exclusion terminology and synchronization example

    5. Correctness properties for synchronization solutions

    6. Too much milk problem, approach 1

    7. Too much milk problem, approach 2

    8. Enforcing mutual exclusion

    9. Shared variables and mutual exclusion requirements

    10. Too much milk problem, approach 3

    1. Locks

    2. Locks in Pthreads

    3. Locks in multiple critical sections

    4. Lock granularity

    5. Deadlock with locks

    6. Mutual exclusion requirements from lock based solutions

    1. Semaphores

    2. More about semaphores, POSIX semaphores

    3. Synchronization patterns-bounded concurrent access, signaling

    4. Employing semaphores to avoid busy waiting

    1. Testing multithreaded programs

    2. Multithreading and multicores

    3. Challenges of multicore programming

    4. Multithreading and single core

    5. Designing multithreaded programs

    6. Parallel computation using multithreaded programs

    7. Thread pools

    8. Supercomputing

About this course

  • $999.00
  • 72 lessons
  • 4.5 hours of video content

Discover your potential, starting today