Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Asynchronous Programming Design Patterns - C/C++
Rating: 4.4 out of 5(120 ratings)
2,159 students

Asynchronous Programming Design Patterns - C/C++

System Programming, C/++, Multithreading Concepts, Thread Synchronization, Operating System Project Courses, Event Loops
Last updated 1/2025
English

What you'll learn

  • The Art of Asynchronous Programming
  • How to Communicate in an Asynchronous way
  • Writing a Computation Scheduler
  • Reducing Multithreaded Application to Single Threaded
  • Designing and Implementing Asynchronous Software's
  • Implementing Concurrency in a Single Threaded Applications
  • Event Loop Design and Implementation
  • Implementing blocking and Non-Blocking Calls

Course content

11 sections66 lectures7h 4m total length
  • Agenda2:15

    PPT Attachedon 12 May 2024

  • Code Access for this Course1:57
  • Synchronous Vs Asynchronous Example 15:29
  • Synchronous Vs Asynchronous Example 25:18
  • Asynchronous Vs Multi-Threading8:30
  • Asynchronous Multi-Threading Design Models5:35
  • Course Layout2:33

Requirements

  • Know Thread Synchronization Concepts - Mutexes and Condition Variables ( any thread library, but we will be using pthreads )
  • C or C++ in preferable, but if your fav language is any other mainstream language then also it is ok. Borrow the concepts and implement it in your fav language.
  • Comfortable witZeal to learn and excel - beyond what Crowd is doing ( DS/ALGO/CP )h basic Data structures such as Linked-List.

Description


Welcome to the World of Asynchronous Programming!!


Asynchronous programming is used anywhere where your application interacts with other external entities - be it other threads, other processes. This world by its nature is Asynchronous. Asynchronous literally means - anything can happen anytime - unpredictable. How do you write software through Asynchronous programming? That's what we shall be going to learn in this course.  Big software projects of reasonable sizes are Asynchronous. Software projects leave their synchronous boundaries the moment it starts integrating and communicating with external entities or go multithreaded.

Asynchronous programming is widely used in Distributed Systems, Networking Protocols, Distributes Databases, etc.


The prerequisite of this Course :

Know Thread Synchronization Concepts - Mutexes and Condition Variables ( any thread library, but we will be using pthreads )

C or C++ in preferable, but if your fav language is any other mainstream language then also it is ok. Borrow the concepts and implement it in your fav language.

Comfortable with basic Data structures such as Linked-List.

Zeal to learn and excel - beyond what Crowd is doing ( DS/ALGO/CP )


The end product of this Course shall be a mini library yet very powerful library which allows you do develop software through Asynchronous programming.


Course Difficulty Level :

The Course is level is Intermediate to Advanced. Very beginners pls refrain from enrolling into the Course.



Software Designing Problems to Address in this Course :


Problem 1. Simulating Concurrency in Single-Threaded Programs

problem 2. Reducing Multi-threaded Programs to Single Threaded

Problem 3. Work Deferrals

Problem 4. Asynchronous Communication

Problem 5. Queuing and Processing Incoming Network Packets


Good luck ! Happy Learning.


After doing this course You would understand :


  • Problems with Synchronous programming

  • Design and Implement Asynchronous Application/Softwares

  • What type of applications/softwares must not be multi-threaded

  • What type of applications/softwares must be asynchronous

  • Say good bye to locking and thread synchronization for forever.

The Concepts you would learn in this course are portable to other programming languages of your choice

Who this course is for:

  • Warning : Not for Absolute beginners in Programming
  • Who want to take their programming Skills from Beginner to Professional Level
  • Final year students looking to crack the Interview Questions on OS, Multithreading Concepts