Параллелизм — это способность системы выполнять несколько задач одновременно или кажущимся одновременно. В Python это достигается с помощью модулей threading и multiprocessing.
Ключевые аспекты:
Многопоточность (Threading):
Потоки разделяют одно и то же адресное пространство памяти.
python
Многопроцессность (Multiprocessing):
Процессы имеют отдельное адресное пространство памяти.
python
Различия между многопоточностью и многопроцессностью:
| Признак | Многопоточность (Threading) | Многопроцессность (Multiprocessing) |
|---|---|---|
| Адресное пространство | Общее | Отдельное |
| GIL | Влияет на CPU-связанные задачи в CPython | Не влияет, так как каждый процесс имеет свой GIL |
| Создание | Быстрее | Медленнее (создание нового процесса) |
| Общение | Через общие переменные (требуется синхронизация) | Через очереди, пайпы, менеджеры (более безопасно) |