
本课程适用于那些想要开发多线程和相关概念的基本概念的人。在本课程中,我们将介绍 Linux 平台上基于 Pthreads(POSIX 线程)的多线程概念。
尽管我们使用 C 语言来演示概念,但概念适用于任何编程语言。本课程对 C++ 程序员同样有价值。其他语言程序员也可能会发现本课程很有用,因为我们解释了接近零级无抽象的多线程概念。
我们将讨论多线程中涉及的几个概念,并通过一个示例程序来演示每个概念。几个重要的概念包括但不限于 – 死锁、互斥、原子性、线程同步、竞争条件、线程分叉等等。
在本课程的下一部分中,我们将扩展我们对多线程的知识以推进概念,包括关于多线程和线程同步的小型项目。
在本系列课程的每个阶段,您都将编写大量多线程代码。所以准备好掌握多线程。在此过程中,我们将涵盖几个面试最喜欢的话题和问题,为您的面试做好准备。
MP4 | Video: h264, 1280×720 | Audio: AAC, 44.1 KHz, 2 Ch
Genre: eLearning | Language: English + srt | Duration: 124 lectures (11h 53m) | Size: 4.13 GB
Linux POSIX Threads ( Pthreads ), thread Synchronization, Operating System Concepts, C/C++ programming with Projects
What you’ll learn:
MultiThreading Fundamentals
Concurrency
Mutual Exclusion Vs Atomocity
Thread Synchronization Techniques
Writing Thread Safe Codes
Mutexes, Semaphores
Signaling and Wait
Interview Questions
Requirements
C language is MUST
Linux Operating Systems
Zeal to learn and excel
Enthusiasm to write lots of Code
Description
Welcome to the Course Series on Multi-Threading – The Master Class Course on Threads.
This course is for those who want to develop fundamental concepts on Multi-threading and related concepts. In this course, we shall be going to cover Multi-threading concepts based on Pthreads (POSIX threads) on the Linux platform.
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 No Abstraction.
We shall discuss several concepts involved in multithreading and demonstrate each concept through a sample program. Several Important Concepts include but not limited to – Deadlocks, Mutual Exclusion, Atomicity, Thread Synchronization, Race Conditions, Thread forking, and many more.
In the Next Installment of this course, we shall extend our knowledge of Multi-threading to Advance Concepts, including mini-projects on Multithreading and Thread Synchronization.
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.
Best of luck!
Table Of Contents:
= = = ======= = = =
1. Understanding Threads
Thread Creation & Termination
Race condition on Thread Creation
Passing Argument to Thread Function
Stack Memory Mgmt for Multi-threaded Programs
Thread Scheduling
2. Understanding Concurrency and Parallelism
Singlularism Vs Concurrency Vs Parallelism
Concurrent Process Design – 2 Examples
Threads as Light Weighted Process
Overlapping and Non-Overlapping Work
3. Joinable and Detached Threads
Joinable Vs Detached Threads
How to Join a thread
Whom to Join?
Sample – Map-Reduce Program
4. Inter Thread Communication
Understanding Callbacks and Function Pointers
Best way to implement ITC
Implementing Notification Chains
A Publisher Subscriber Model
How to Subscribe/UnSubscribe
How to send Notification to Subscribers
5. Asynchronous Thread Cancellation
Thread Cancellation
Asynchronous and Deferred Thread Cancellation
Problem with Async Thread Cancellation
Resource Leaking
Invariants
Deadlocks
Concept of Thread Cleanup Handlers
Prevent Resource Leaking
Data Structure Corruption – Invariants
Cancellation causing Deadlocks
6. Deferred Cancellation
Understanding Deferred Cancellation
Implementation
7. Listener Threads – Responsibility Delegation
Why Listener threads?
Designing Listener threads
Code Changes and Demo
Cancellation of blocked Threads
8. Thread Synchronization
Critical Section
Mutex Rules
Mutex Locking
Mutex Locking – Code Locking
Mutex Locking – Data Locking
Mutex based APIs
Mutexes in Action
9. Deadlocks
What are deadlocks and why do they happen?
Necessary conditions for Deadlock to happen
Mutex lock Ordering Causing Deadlocks
10. Condition Variables
Understanding CV
CV Vs Mutex
Wait( ) & Signal( )
Producer-Consumer Thread Synchronization
Spurious Wake Ups
Thread Vs Resource Specific CV
Broadcasting a CV
Implement Producer-Consumer Problem
11. Dining Philosopher Problem
Problem Description
Data Structures Setup
Assignment Program Setup
Flowchart/Algorithm Discussion
Final Implementation (Step by Step )
12. Semaphores
Introduction
Semaphores Vs Mutexes
How Semaphore work
Strict Alternation Problem
Semaphore Implementation
Semaphore Types
Strong and Weak Semaphores
Listing Upcoming Advanced Multi-Threading Topics for Sequel Course ( Under Progress )
= = = = = = = = = = = = = = = = = = = = = =
1. Pausing and Resuming Threads
2. Thread Pools
3. Standard Problems – Reader/Writer Problem
4. Implementing Thread Barriers
5. Implementing Thread Monitors
6. Solving Sync Problems using Monitors
7. Deadlock Detection and Prevention
8. Wait Queues
9. Implement Timers using Threads
10. How to fork a multi-threaded process
11. Process Synchronization using Named Semaphores
Happy Learning.
Who this course is for
Engineering graduates & post-graduates
Working professionals and Job Seekers
Free lancers , System Engineers, Developers
原创文章,作者:steven,如若转载,请注明出处:https://rr3d.cn/12069.html