Some of the reference can be found on the Book starting from page number: 307 on concurrency.
This section covers the very basics of the threading, multiprocessing, memory and program architecture.
-
- Intro To Threads
- Multiple Threads
- Multithreading Advantages and Disadvantages
-
2. Processes and Event Driven Programming
- Intro To Processes
- Properties of Process
- Advantages and Disadvantages of Multiprocessing
- Illustration Of Event Driven Program
-
3. Threads Vs Sequential Execution: Example
- Sequentual and Threaded implementation for image downloader
-
4. Improving Computation with Multiprocessing: Comparision and Example with Sequential Approach
- Sequential and Multiprocessing approach for prime factorization
-
5. Concurrency And Parallelism, Bottlenecks
- Concurrency
- Properties of Concurrent System
- IO Bottlenecks
-
- Parallelism
- Concurrency Vs Parallelism
- CPu Bound Bottlenecks
-
- Unified Memory Access
- Non Unified Memory Access
-
-
8.1. Intro To Thread in Python
- Python threading module constructor params.
- Thread States
- Thread State Transition, Example with Code
-
- Class Based Initialization Of Thread
- Process Forking, Example
- Daemon Thread, Usage, Example
-
8.3. Handling Threads in Python
- Listing active threads objects:
threading.enumerate()
- Get current thread:
threading.current_thread()
- Main Thread: Program Thread:
threading.main_thread()
- Thread naming:
threading.current_thread().name
, construct thread name initialization.
- Listing active threads objects:
-
-
-
9.1. Comparision Between Different Primitives
- Tabular Comparision: Lock, RLock, Semaphore, BoundedSemaphore
- Semaphore Vs BoundedSemaphore
-
9.2. Synchronization Between Threads
- Dining philosopher problem
-
9.3. Shared Resource And Data Race
- threading.Lock
- threading.RLock
- Lock vs RLock
-
- Example Illustration with pseudocode in C.
- Key Concepts For Pythonic Implementation
- Condition class method.
- Example Implementation with python.
-