Junior — Middle
108
Milyen típusú multitasking és párhuzamosság valósul meg Pythonban, és hogyan alkalmazzák őket?
Válasz az MI-től
sobes.tech MI
В 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]))