- Parallelism - способность выполнения программ одновременно
- Multiprocessing - параллелизм, при котором программы распределяются между ядрами процессора
- Concurrency - способность программ выполняться одновременно, накладываюсь одну на другую
- Threading - сoncurrency, при котором программы выполняются в потоках
- Сooperative multitasking (совместная многозадачность) - каждый поток удерживает ресурсы CPU так долго, как ему надо, а затем передает их другим потокам.
- Preemptive multitasking (вытесняющая многозадачность) - поток не может решать, когда начать и закончить свое выполнение. Это решает процессор, что приводит к частой смене контекста
- CPU-bound task - задача, при выполнении которой процессор загружен от начала и до конца (математические вычисления, обработка изображений, etc)
- IO-bound task - задача, при которой нагрузка на процессор не постоянно и зависит от входных данных.
- Сoroutine (сопрограмма) - разновидность генераторов в Python , способная временно приостанавливать свое выполнение и передать его другой программе
Модуль, позволяющий писать конкуретный python-код, не использую при этом концепцию потоков и процессов.
async def chain(n: int) -> None:
p1 = await part1(n)
p2 = await part2(n, p1)