CSEPracticals - System Programming and Networking Development Courses

Only Projects and Courses - No DS/ALGO/CP !


Part B (ADVANCE) - Multithreading Design Patterns ( Pthreads )

Linux Posix Threads ( pthreads ), thread synchronization, Operating System Concepts, C/C++ Programming with Projects

Rating 4.2 (23)      1548 students

Last Updated : 8/2022

Created by : Abhishek Sagar, Shivani Nigam, Ekta

image


What Will you Learn ?

  • MultiThreading Fundamentals

  • Thread standard problems - Reader-Writer Problem

  • Advanced Multithreading Concepts

  • Thread Pools, Wait Queues, Barriers, Monitors, Assembly Line

  • Monitors, Barriers, WaitQueues, Assembly line

  • Build Github portfolio, strengthen your employability

  • Implement Blocking Timed-Wait Calls

  • Implement own read-write locks

  • Interview Questions


Requirement

  • C language is MUST

  • Linux Operating Systems

  • Finish Prequel Course

  • Enthusiasm to write lots of Code


Who is the Audience ?

  • Engineering graduates & post-graduates

  • Working professionals and Job Seekers

  • Free lancers , System Engineers, Developers


Description 

This is a sequel Course to Master Class-Multithreading & Thread Synchronization - C/C++, and this course should be done only when the prequel course has been completed unless you have reasonable knowledge regarding how Mutexes and Condition Variables work.

In this course, we shall be Implementing Advanced Thread Synchronization Data Structures and Multithreading based software patterns, with some advanced thread synchronization-based problem-solving. This course uses POSIX threads, hence it is Linux only course.  We shall be building upon the knowledge we gathered from the prequel course.


*** However note that the course is highly conceptual and concepts learned can be easily applied to any programming knowledge which supports Multithreading. ***   So, Java, C#, Python, Go, Kotlin Programmers do not hesitate to enroll in this course, you can write your own codes based on the concept discussed. This Course is unique and only one of its kind.

The level of this course is Intermediate to Advanced.


Table of Contents

====================

1.  Thread Management

2. Pausing and Resuming Threads

3. Thread Pools/Work Crew Model

4. Thread Barriers                                

5. Wait-Queue Model

6. Recursive Mutexes

  • What are Recursive Mutexes?

  • When to use over Normal Mutexes?

  • Implement own Recursive Mutex

7. Read-Write Locks

  • What are Read-Write locks ?

  • What is its benefit?

  • Implement your own Read-Write lock

8. Monitors

  • Implement Reader-Writer Monitor

  • Solving Bridge Problem using Monitors

  • Guidelines for writing Monitors

  • Case Study : Covid Vaccination Drive Implementation using Monitors

*** Completed Till here as of 2 Mar 2022 **

9. Assembly Line Model

10. Deadlock Detection and Prevention

11. Other Related Courses on Multi-Threading

  • Designing Timers

  • Designing Multi-Threaded TCP Servers

  • Asynchronous Programming


Unscheduled Topics :

=================

11. Bounded Waiting

12. Fifo (Strong) Semaphores

13. Event Pair Synchronization

14. Inter-Process Synchronization using Semaphores

15. Forking a Multi-Threaded Program


Though We use the C language to demonstrate the concepts, concepts hold good for any programming language. This course is equally valuable for C++ programmers. Other language programmers may also find this course useful as we explain Multithreading concepts close to the ground zero levels with No Abstraction.

At each stage of this Course series, you shall be writing a lot of multi-threaded Codes. So be ready to Master the Multi-threading. Along the journey, we shall cover several interview-favorite topics and Questions to prepare you alongside for interviews.


Table of Contents

No chapter found in this course