Какие формы выполнения нескольких задач одновременно реализованы в Python?
Answer from AI
sobes.tech AI
В Python для выполнения нескольких задач одновременно реализованы следующие основные формы:
-
Потоки (threading) — позволяют запускать несколько потоков в рамках одного процесса. Однако из-за GIL (Global Interpreter Lock) в CPython потоки не дают реального параллелизма при выполнении CPU-интенсивных задач, но хорошо подходят для I/O операций.
-
Многопроцессность (multiprocessing) — создаёт несколько процессов, каждый со своей памятью, что позволяет обойти ограничения GIL и выполнять задачи параллельно на нескольких ядрах.
-
Асинхронное программирование (asyncio) — использует событийный цикл и корутины для эффективного выполнения большого числа I/O операций без создания дополнительных потоков или процессов.
Пример использования потоков:
import threading
def worker():
print('Работа в потоке')
thread = threading.Thread(target=worker)
thread.start()
thread.join()
Пример использования multiprocessing:
from multiprocessing import Process
def worker():
print('Работа в процессе')
process = Process(target=worker)
process.start()
process.join()
Асинхронный пример:
import asyncio
async def worker():
print('Асинхронная задача')
asyncio.run(worker())