Python Concurrency Simplified
Last updated 12/2018
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.78 GB | Duration: 5h 56m
Last updated 12/2018
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.78 GB | Duration: 5h 56m
Practically understand concurrency in Python to write efficient programs
What you'll learn
This course is for Python developers who want to learn concurrency techniques to build high-performance applications with Python.
Requirements
Prior knowledge of Python language is assumed.
Description
Python is a very high level, general purpose language that is utilized heavily in fields such as data science and research, as well as being one of the top choices for general purpose programming for programmers around the world. It features a wide number of powerful, high and low-level libraries and frameworks that complement its delightful syntax and enable Python programmers to create.This course introduces some of the most popular libraries and frameworks and goes in-depth into how you can leverage these libraries for your own high-concurrent, highly-performant Python programs. You will learn the fundamental concepts of concurrency needed to be able to write your own concurrent and parallel software systems in Python. You will also learn the concepts such as debugging and exception handling as well as the libraries and frameworks that allow you to create event-driven and reactive systems.Contents and OverviewThis training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.The first course, Learning Concurrency in Python, introduces some of the most popular libraries and frameworks and goes in-depth into how you can leverage these libraries for your own high-concurrent, highly-performant Python programs. You will learn the fundamental concepts of concurrency needed to be able to write your own concurrent and parallel software systems in Python.In the second course, Concurrent Programming in Python, you will skill-up with techniques related to various aspects of concurrent programming in Python, including common thread programming techniques and approaches to parallel processing.Filled with examples, this course will show you all you need to know to start using concurrency in Python. You will learn about the principal approaches to concurrency that Python has to offer, including libraries and tools needed to exploit the performance of your processor. Learn the basic theory and history of parallelism and choose the best approach when it comes to parallel processing.By the end of this course, you will have learned the techniques to write incredibly efficient concurrent systems that follow best practices.Meet Your Expert(s):We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:● Elliot Forbes has worked as a full-time software engineer at a leading financial firm for the last two years. He graduated from the University of Strathclyde in Scotland in the spring of 2015 and worked as a freelancer developing web solutions while studying there. He has worked on numerous different technologies such as Golang, Node.js, and plain old Java, and he has spent years working on concurrent enterprise systems.Elliot has even worked at Barclays Investment Bank for a summer internship in London and has maintained a couple of software development websites for the last three years.BignumWorks Software LLP is an India-based software consultancy that provides consultancy services in the area of software development and technical training. Our domain expertise includes web, mobile, cloud app development, data science projects, in-house software training services, and up-skilling services.
Overview
Section 1: Learning Concurrency in Python
Lecture 1 The Course Overview
Lecture 2 Threads and Multithreading
Lecture 3 Processes and Event-Driven Programming
Lecture 4 Concurrent Image Download
Lecture 5 Improving Number Crunching with Multiprocessing
Lecture 6 Concurrency and I/O Bottlenecks
Lecture 7 Understanding Parallelism
Lecture 8 Computer Memory Architecture Styles
Lecture 9 Threads in Python
Lecture 10 Starting a Thread
Lecture 11 Handling Threads in Python
Lecture 12 How Does the Operating System Handle Threads?
Lecture 13 Deadlocks and Race Condition
Lecture 14 Shared Resources and Data Races
Lecture 15 Conditions and Semaphores
Lecture 16 Events and Barriers
Lecture 17 Sets and Decorator
Lecture 18 Queues
Lecture 19 Queue and Deque Objects
Lecture 20 Appending, Popping, and Inserting Elements
Lecture 21 Defining Your Own Thread-Safe Communication Structures
Lecture 22 Testing Strategies
Lecture 23 Debugging
Lecture 24 Benchmarking
Lecture 25 Profiling
Lecture 26 Concurrent Futures
Lecture 27 Future Objects
Lecture 28 Setting Callbacks and Exception Classes
Lecture 29 ProcessPoolExecutor
Lecture 30 Improving Our Crawler
Lecture 31 Working Around the GIL and Daemon Processes
Lecture 32 Identifying and Terminating Processes
Lecture 33 Multiprocessing Pools
Lecture 34 Communication Between Processes
Lecture 35 Multiprocessing Manager
Lecture 36 Communicating Sequential Processes
Lecture 37 Event-Driven Programming
Lecture 38 Getting Started with Asyncio
Lecture 39 Debugging Asyncio Programs
Lecture 40 Twisted
Lecture 41 Gevent
Section 2: Concurrent Programming in Python
Lecture 42 The Course Overview
Lecture 43 Advanced OSes and Programming Environments
Lecture 44 Concurrency Versus Parallelism with Examples
Lecture 45 Operating System’s Building Blocks of Parallel Execution
Lecture 46 Libraries in Python Used to Achieve Concurrency and Parallelism
Lecture 47 Python’s Global Interpreter Lock (GIL)
Lecture 48 Overview of Threading Module
Lecture 49 Creating Threads
Lecture 50 Managing Threads
Lecture 51 Synchronization in Python
Lecture 52 Using Synchronization Primitives
Lecture 53 Producer–Consumer Pattern
Lecture 54 Using Python Queue Module
Lecture 55 Multithreading in GUI Programming
Lecture 56 Limitations Imposed by GIL
Lecture 57 Multiprocessing
Lecture 58 Similarities Between Thread and Process Management
Lecture 59 Difference Between Thread and Process Management
Lecture 60 Libraries for Practice
Lecture 61 Process Synchronization
Lecture 62 Inter-Process Communication
Lecture 63 Best Practices and Anti-Patterns
Lecture 64 Pool of Workers for Maximizing Usage of the Hardware
Lecture 65 When and How to Use a Pool of Workers
Lecture 66 Best Practices and Anti-Patterns
Increase your awareness of concurrency in Python,Distinguish between parallel programming and concurrent programming,Explore Python's threading module,Familiarize yourself with Python's Global Interpreter Lock (GIL),Learn the similarities between thread and process management,Practice with open source libraries,Learn process synchronization and inter-process communication,Work with best practices and caveats,Know how to handle the hardest part in a concurrent system: shared resources,Build concurrent systems with Communicating Sequential Processes (CSPs),Maintain all concurrent systems and master them