Back to questions
Junior — Middle
77
Можно ли выполнять несколько задач одновременно в одном потоке в Python?
Answer from AI
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())
Таким образом, несколько задач могут выполняться «параллельно» в одном потоке, переключаясь по времени ожидания, но не одновременно в смысле многопоточности.