Junior — Middle
63
Каковы преимущества и недостатки использования потоков в Python для многозадачности?
Answer from AI
sobes.tech AI
Преимущества использования потоков (threads) в Python:
- Позволяют выполнять несколько задач одновременно, что полезно для операций ввода-вывода (например, сетевые запросы, чтение файлов).
- Упрощают структуру программы при работе с параллельными задачами.
Недостатки:
- Из-за GIL (Global Interpreter Lock) в стандартной реализации CPython потоки не могут эффективно использовать несколько ядер процессора для вычислительно интенсивных задач — они выполняются по очереди.
- Потоки могут привести к сложностям с синхронизацией данных и состоянием, что повышает риск ошибок (гонки, дедлоки).
Пример использования потоков для параллельного выполнения операций ввода-вывода:
import threading
import time
def task(name):
print(f"Поток {name} начал работу")
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()
Этот код запускает три потока, которые выполняют задачу с задержкой, демонстрируя параллельное выполнение.