Что знаешь про потоки в Python

Python Junior Без компании
Что знаешь про потоки в Python
Ответы
В Python потоки (threads) используются для выполнения задач параллельно в рамках одного процесса. Они разделяют общее пространство памяти, что упрощает обмен данными, но требует синхронизации из-за проблем с GIL (Global Interpreter Lock). **Особенности:** - GIL ограничивает выполнение только одного потока за раз (в CPU-bound задачах). - Потоки эффективны для I/O-bound задач (сеть, файлы), где есть ожидание. - Реализованы через модуль `threading`. **Пример:** ``` import threading def task(): print("Поток выполняется") thread = threading.Thread(target=task) thread.start() thread.join() # Ожидание завершения ``` **Синхронизация:** Используйте `Lock`, `RLock`, `Semaphore` для избежания race conditions: ``` lock = threading.Lock() with lock: # Критическая секция shared_data += 1 ``` **Альтернативы:** - Для CPU-bound задач — `multiprocessing`. - Для асинхронности — `asyncio`.