Работал ли с многопоточностью
Python
Senior
VK
Работал ли с многопоточностью
Ответы
Да, работал. В Python для многопоточности используется модуль `threading`. Основные моменты:
- **GIL (Global Interpreter Lock)** ограничивает параллельное выполнение кода в потоках, поэтому потоки эффективны для I/O-bound задач, но не для CPU-bound.
- Для CPU-bound задач лучше использовать `multiprocessing`.
Пример с `threading`:
```
import threading
def task(name):
print(f"Thread {name} started")
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`:
```
lock = threading.Lock()
with lock:
# Критическая секция
```
Также знаком с `concurrent.futures.ThreadPoolExecutor` для управления пулом потоков.