Sobes.tech
Назад к вопросам
Junior — Middle
75

Можно ли выполнять несколько задач одновременно в одном потоке в Python?

Ответ от нейросети

sobes.tech AI

В Python в одном потоке можно выполнять несколько задач одновременно, используя асинхронное программирование (asyncio) или генераторы, которые позволяют переключаться между задачами без создания новых потоков. Однако из-за GIL (Global Interpreter Lock) в стандартной реализации CPython одновременное выполнение нескольких потоков, выполняющих Python-код, ограничено — только один поток выполняется в любой момент времени.

Пример с asyncio для одновременного выполнения задач в одном потоке:

import asyncio

async def task(name, delay):
    await asyncio.sleep(delay)
    print(f"Задача {name} выполнена")

async def main():
    await asyncio.gather(
        task('A', 1),
        task('B', 2),
        task('C', 1.5)
    )

asyncio.run(main())

Таким образом, несколько задач могут выполняться «параллельно» в одном потоке, переключаясь по времени ожидания, но не одновременно в смысле многопоточности.