Skip to content

CaptBarbarosa/Multithreading-and-Thread-Synchronization-in-UNIX

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

98 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multithreading and Thread Synchronization in UNIX

Welcome to the Multithreading and Thread Synchronization in UNIX repository! This project covers various concepts and implementations related to multithreading and thread synchronization using Pthreads in UNIX.

Table of Contents

  1. Introduction
  2. Course Content
  3. Resources
  4. Acknowledgments

Introduction

Multithreading involves running multiple threads concurrently within a process to achieve parallelism and improve performance. Thread synchronization is crucial to avoid race conditions and ensure the correctness of data when multiple threads access shared resources.

Course Content

This project is based on the following resources:

  • Udemy Courses:
    • "Part A - Multithreading & Thread Synchronization - Pthreads"
    • "Part B (ADVANCE) Multithreading Design Patterns (pthreads)"
  • Codevault YouTube Channel
  • Jacob Sorber YouTube Channel
  • Neso Academy YouTube Channel
  • Udacity YouTube Channel

Key Topics Covered:

  1. Intro to Multithreading

    • Introduction to multithreading concepts
    • Creating and managing threads
  2. Joinable and Detached Threads

    • Managing thread lifecycles: joinable and detached threads
  3. Notification Chains

    • Implementing notification chains for thread communication
  4. Asynchronous Thread Cancellation

    • Mechanisms for asynchronous thread cancellation
  5. Deferred Thread Cancellation

    • Methods for deferred thread cancellation
  6. Thread Synchronization via Mutexes

    • Basic synchronization techniques using mutexes
  7. Condition Variables

    • Using condition variables for thread synchronization
  8. Thread Barriers

    • Implementing barriers to synchronize threads
  9. Spinlocks

    • Using spin locks for busy-wait synchronization
  10. Semaphores

    • Implementing semaphores for controlling access to resources
  11. Recursive Mutexes and Locks

    • Understanding and using recursive mutexes
  12. Read-Write Locks

    • Using read-write locks for efficient data access

Resources

This project draws from the following books:

  • "The Linux Programming Interface" by Michael Kerrisk
  • "Linux Kernel Development" by Robert Love
  • "Multithreaded Programming Guide" by Oracle

Acknowledgments

Special thanks to the creators of the Udemy courses and the authors of the referenced books for providing valuable insights and knowledge.

Feel free to explore the code, contribute, and enhance your understanding of multithreading and thread synchronization in UNIX!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published