Back to questions
Sunlight
Junior — Middle
50
Какими методами можно реализовать асинхронное выполнение задач в программных системах?
Companies where asked
Answer from AI
sobes.tech AI
В Python асинхронное выполнение задач можно реализовать несколькими способами:
- Модуль threading — для запуска нескольких потоков, которые выполняются параллельно, но из-за GIL (Global Interpreter Lock) не всегда дают прирост производительности для CPU-bound задач.
import threading
def task():
print("Задача выполняется")
thread = threading.Thread(target=task)
thread.start()
thread.join()
- Модуль multiprocessing — для запуска нескольких процессов, что позволяет обойти ограничения GIL и эффективно использовать несколько ядер CPU.
from multiprocessing import Process
def task():
print("Задача в процессе")
process = Process(target=task)
process.start()
process.join()
- Модуль asyncio — для написания асинхронного кода с использованием корутин, что особенно полезно для IO-bound задач.
import asyncio
async def task():
print("Начало задачи")
await asyncio.sleep(1)
print("Задача завершена")
asyncio.run(task())
- Библиотеки для параллелизма и асинхронности — например, concurrent.futures (ThreadPoolExecutor, ProcessPoolExecutor) для удобного управления пулом потоков или процессов.
Таким образом, выбор метода зависит от типа задачи (CPU-bound или IO-bound) и требований к параллелизму.