Skip to content

artbakulev/asyncio-learning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASYNCIO learning

Glossary

  • Parallelism - способность выполнения программ одновременно
  • Multiprocessing - параллелизм, при котором программы распределяются между ядрами процессора
  • Concurrency - способность программ выполняться одновременно, накладываюсь одну на другую
  • Threading - сoncurrency, при котором программы выполняются в потоках
  • Сooperative multitasking (совместная многозадачность) - каждый поток удерживает ресурсы CPU так долго, как ему надо, а затем передает их другим потокам.
  • Preemptive multitasking (вытесняющая многозадачность) - поток не может решать, когда начать и закончить свое выполнение. Это решает процессор, что приводит к частой смене контекста
  • CPU-bound task - задача, при выполнении которой процессор загружен от начала и до конца (математические вычисления, обработка изображений, etc)
  • IO-bound task - задача, при которой нагрузка на процессор не постоянно и зависит от входных данных.
  • Сoroutine (сопрограмма) - разновидность генераторов в Python , способная временно приостанавливать свое выполнение и передать его другой программе

AsyncIO

Модуль, позволяющий писать конкуретный python-код, не использую при этом концепцию потоков и процессов.

Async IO Design Patterns

Chaining Coroutines


async def chain(n: int) -> None:
    p1 = await part1(n)
    p2 = await part2(n, p1)
    

About

Обучение asyncio в Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages