Back to questions
Junior — Middle
72
Какие типы многозадачности и параллелизма реализованы в Python и как они применяются?
Answer from AI
sobes.tech AI
В Python реализованы несколько типов многозадачности и параллелизма:
-
Потоки (Threading)
- Позволяют выполнять несколько потоков внутри одного процесса.
- Из-за GIL (Global Interpreter Lock) в стандартном CPython одновременно выполняется только один поток Python-кода, но потоки полезны для операций ввода-вывода.
-
Многопроцессность (Multiprocessing)
- Создание нескольких процессов, каждый со своей памятью.
- Позволяет обойти ограничения GIL и выполнять код параллельно на нескольких ядрах CPU.
-
Асинхронное программирование (asyncio)
- Позволяет писать неблокирующий код с помощью корутин.
- Эффективно для большого числа операций ввода-вывода.
Применение:
- Потоки подходят для задач с интенсивным вводом-выводом.
- Многопроцессность — для CPU-интенсивных задач.
- Asyncio — для масштабируемых сетевых приложений.
Пример использования multiprocessing:
from multiprocessing import Pool
def f(x):
return x*x
with Pool(4) as p:
print(p.map(f, [1, 2, 3, 4]))