Junior — Middle
68
Можно ли реализовать параллельное выполнение задачи с использованием потоков?
Ответ от нейросети
sobes.tech AI
В Python можно реализовать параллельное выполнение задач с использованием потоков через модуль threading. Однако из-за GIL (Global Interpreter Lock) в стандартной реализации CPython потоки не дают настоящего параллелизма при выполнении CPU-интенсивных задач — они больше подходят для операций ввода-вывода (I/O). Для CPU-нагруженных задач лучше использовать модуль multiprocessing, который создает отдельные процессы.
Пример использования потоков для параллельного выполнения I/O-задачи:
import threading
import time
def worker(name):
print(f"Поток {name} начал работу")
time.sleep(2)
print(f"Поток {name} завершил работу")
threads = []
for i in range(3):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
Таким образом, параллельное выполнение с потоками возможно, но с ограничениями, связанными с GIL.