Sobes.tech
Junior — Middle
68

Какие формы выполнения нескольких задач одновременно реализованы в Python?

Answer from AI

sobes.tech AI

В Python для выполнения нескольких задач одновременно реализованы следующие основные формы:

  1. Потоки (threading) — позволяют запускать несколько потоков в рамках одного процесса. Однако из-за GIL (Global Interpreter Lock) в CPython потоки не дают реального параллелизма при выполнении CPU-интенсивных задач, но хорошо подходят для I/O операций.

  2. Многопроцессность (multiprocessing) — создаёт несколько процессов, каждый со своей памятью, что позволяет обойти ограничения GIL и выполнять задачи параллельно на нескольких ядрах.

  3. Асинхронное программирование (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())