Расскажи про потоки в Python
Python
Junior
Без компании
Расскажи про потоки в Python
Ответы
В Python потоки реализуются через модуль `threading`. Они позволяют выполнять задачи параллельно, но из-за GIL (Global Interpreter Lock) настоящая параллельность возможна только для I/O-bound задач, а не CPU-bound.
**Основные моменты:**
- Создание потока: `thread = threading.Thread(target=функция, args=(аргументы,))`
- Запуск: `thread.start()`
- Ожидание завершения: `thread.join()`
Пример:
```
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()
```
**Особенности:**
- Общие данные требуют синхронизации (Lock, RLock)
- GIL ограничивает производительность для CPU-bound задач
- Для CPU-bound задач лучше использовать multiprocessing