Concurrency Patterns with Python
Concurrency in programming is when two or more events or computations are Occurring or being executed at the same time. That is overlapping each other as they go. Concurrency in modern-day programming is everywhere from web servers, ETL pipelines to Big-Data. Therefore, understanding how to use concurrency can be a great tool for anyone looking to speed up their executions or a way to make their code execution non-sequential. In this workshop, we will be discussing what concurrency means, its basic building blocks and different patterns that allow for it. You will get hands-on with various python libraries such as concurrent, asyncio and thespian as well as get a high-level overview of newer forms of concurrency such as hardware-based parallelism, distributed computation and data-intensive architectures.
- Introduction (45 mins)
- What is concurrency?
- Threads, locks and deadlocks
- Separating Identity from state
- Concurrency vs Parallelism
- Software Transactional Memory
- Hands-On (1 hr)
- Actor Model using thespian (25 mins)
- CSP and coroutines using asyncio (35 mins)
- High-Level Overview (30 mins)
- Hardware-based Parallelism
- Data-Intensive Architecture
- Questions and Answers (QNA) (10 mins)
- Familiarity with python syntax
- Python 3.7+ on any OS
Hi, I am Anmol Jindal, I work as a data scientist at Intelligence Node (Mumbai), I hold a degree in Computer Science Engineering from DIT University (Dehradun). I have worked on Computer Vision, AI-powered Search engines and some other fun stuff.