Какие особенности многопоточности в Python

Python Senior Билайн
Какие особенности многопоточности в Python
Ответы
В Python существует GIL (Global Interpreter Lock), который позволяет выполняться только одному потоку в один момент времени, даже на многоядерных процессорах. Это ограничивает эффективность потоков для CPU-задач, но они полезны для I/O-операций. Основные особенности: - Потоки используют общую память, что требует синхронизации (Lock, RLock, Semaphore) - Для CPU-задач лучше использовать multiprocessing - Для I/O-задач (сеть, файлы) потоки эффективны, так как GIL отпускается во время ожидания Пример: ``` import threading counter = 0 lock = threading.Lock() def increment(): global counter with lock: counter += 1 threads = [] for _ in range(1000): t = threading.Thread(target=increment) threads.append(t) t.start() for t in threads: t.join() print(counter) # Гарантированно 1000 ```