Голосов: 0
#1
Асинхронные методы и примеры в Python
Async Techniques and Examples in Python
Краткое описание курса
Поддержка асинхронного и параллельного программирования Python сильно недооценена. В этом курсе вы узнаете весь спектр параллельных API-интерфейсов Python. Мы начнем с изучения новых и мощных асинхронных и ожидающих ключевых слов вместе с базовым модулем: asyncio. Затем мы перейдем к потокам Python для параллелизации более старых операций и многопроцессорности для операций с привязкой к ЦП. Мы закроем курс с множеством дополнительных асинхронных тем, таких как async Flask, координация задач, безопасность потоков и параллелизм на основе C с Cython.
Для кого этот курс?
Любой, кто хотел бы написать код Python, который делает больше, масштабируется лучше и лучше использует современные многоядерные процессоры. Независимо от того, являетесь ли вы веб-разработчиком или учеными-исследователями данных, вы найдете множество методов для работы быстрее.
Курс не является начинающим курсом Python, поэтому ученики с минимальным опытом работы на Python сначала должны получить основополагающий курс. Мы рекомендуем наш Python Jumpstart путем создания приложений 10 в качестве необходимого условия, если это необходимо.
Что вы узнаете на этом курсе?
Это окончательный курс параллельного программирования в Python. Он охватывает проверенные и основанные на основах концепции, такие как потоки и многопроцессорность, а также самые современные функции async, основанные на Python 3.7+ с асинхронным и ожидающим.
В дополнение к основным концепциям и API для параллельного программирования вы узнаете о лучших практиках и о том, как выбирать между различными API-интерфейсами, а также как использовать их вместе для самого большого преимущества.
В этом курсе вы:
- Узнайте, как параллелизм позволяет повысить производительность и масштабируемость
- Создайте асинхронный код с новыми асинхронными и ожидающими ключевыми словами
- Добавьте асинхронность в приложение без дополнительных потоков или процессов
- Работа с несколькими потоками для работы в режиме ввода-вывода в Python
- Используйте блокировки и механизмы защиты потоков для защиты общих данных
- Распознать блокировку и посмотреть, как предотвратить их в потоках Python
- В полной мере использовать многоядерные процессоры с многопроцессорной обработкой
- Унифицируйте API потоков и процессов с пулами выполнения
- Добавьте мощные ускорения с потоками Cython и Python
- Создание методов просмотра async в веб-приложениях Flask
- И многое другое
Welcome to the course
Course introductionSetup and following along
Async for taking full advantage of modern CPUs
Topics covered
Student prerequisites
Meet your instructor
Video player: A quick feature tour
Do you have Python 3?Why async?
Getting Python 3
Recommended text editor
Hardware requirements
Get the source code
Async for computational speedasync and await with asyncio
Demo: Why you need async for speed
An upper bound for async speed improvement
Async for scalability
Concept: Visualizing a synchronous request
Concept: Visualizing an asynchronous request
Python's async landscape
Why threads don't perform in Python
Python async landscape: asyncioThreads
I/O-driven concurrency
Demo: Understanding basic generators
Demo: The producer-consumer app
Demo: Make the producer-consumer async
Demo: Make the producer-consumer async (methods)
Concept: asyncio
Performance improvements of producer consumer with asyncio
Faster asyncio loops with uvloop
Let's do some real work
Synchronous web scraping
async web scraping
Concept: async web scraping
Other async-enabled libraries
Python async landscape: ThreadsThread safety
Visual of thread execution
How to choose between asyncio and threads
Demo: hello threads
Demo: Waiting on more than one thread
Demo: Something productive with threads
Concept: Thread API
Concept: Tips for multiple threads
Cancelling threads with user input
Concept: Timeouts
Demo: Attempting to leverage multiple cores with threads
Python async landscape: Thread Safety landscapeLeveraging CPU cores with multiprocessing
Threads are dangerous
Visualizing the need for thread safety
Demo: An unsafe bank
Demo: Make the bank safe (global)
Demo: A missed lock in our bank (global)
Demo: Make the bank safe (fine-grained)
Demo: Breaking a deadlock
Concept: Basic thread safety
Python async landscape: multiprocessingCommon APIs with execution pools
Introduction to scaling CPU-bound operations
Demo: Scaling CPU-bound operations with multiprocessing
Concept: Scaling CPU-bound operations
Multiprocessing return values
Concept: Return values
Python async landscape: Execution poolsBuilt on asyncio
Demo: Executor app introduction
Demo: Executor app (threaded-edition)
Demo: Executor app (process-edition)
Concept: Execution pools
Python async landscape: asyncio derivativesasyncio-based web frameworks
Why do we need more libraries?
Introducing unsync
Demo: unsync app introduction
Demo: unsync app for mixed-mode parallelism
Concept: Mixed-mode parallelism with unsync
Introducing Trio
Demo: Starter code for Trio app
Demo: Converting from asyncio to Trio
Demo: Cancellation with Trio
Concept: Trio nurseries
The trio-async package
Python async landscape: Async webParallelism in C with Cython
Review: Request latency again
Demo: Introducing our Flask API
There is no async support for Flask
Demo: Introducing Quart for async Flask
Demo: Converting from Flask to Quart
Demo: Making our API async
Demo: An async weather endpoint
Concept: Flask to Quart
Load testing web apps with wrk
A note about rate limiting with external services
Performance results
Remember to run on an ASGI server
Python async landscape: CythonCourse conclusion and review
C and Python are friends
Why Cython
Cython syntax compared
Demo: Hello Cython
Concept: Getting started with Cython
Demo: Fast threading with cython (app review)
Demo: Fast threading with Cython (hotspot)
Demo: Fast threading with Cython (conversion)
Demo: Fast threading with Cython (GIL-less)
Demo: Fast threading with Cython (int overflow issues)
Concept: Cython's nogil
The finish line
Review: Why async?
Review: asyncio
Review: Threads
Review: Thread safety
Review: multiprocessing
Review: Execution pools
Review: Mixed-mode parallelism
Review: Coordination with Trio
Review: Async Flask
Review: Cython
Thanks and goodbye
Для просмотра содержимого вам необходимо зарегистрироваться!Для просмотра содержимого вам необходимо зарегистрироваться!
Последнее редактирование модератором:
- Статус
- В этой теме нельзя размещать новые ответы.