Back to questions
Junior — Middle
60
Поделитесь своим опытом работы с многопоточностью и параллельным выполнением задач
Answer from AI
sobes.tech AI
В Python для многопоточности обычно использую модуль threading, когда задачи связаны с вводом-выводом, например, сетевые запросы или чтение файлов. Для вычислительно интенсивных задач применяю модуль multiprocessing, чтобы обойти ограничение GIL и распараллелить работу на несколько процессов.
Пример с использованием threading для параллельного выполнения нескольких функций:
import threading
def task(name):
print(f"Задача {name} начала выполнение")
# имитация работы
import time
time.sleep(2)
print(f"Задача {name} завершена")
threads = []
for i in range(3):
t = threading.Thread(target=task, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
Также использовал concurrent.futures для удобного управления пулом потоков или процессов, что упрощает написание параллельного кода и обработку результатов.