Встречается на 1% собеседований по Python
Какие особенности многопоточности в Python
В Python существует GIL (Global Interpreter Lock), который позволяет выполняться только одному потоку в один момент времени, даже на многоядерных процессорах. Это ограничивает эффективность потоков для CPU-задач, но они полезны для I/O-операций.
Основные особенности:
- Потоки используют общую память, что требует синхронизации (Lock, RLock, Semaphore)
- Для CPU-задач лучше использовать multiprocessing
- Для I/O-задач (сеть, файлы) потоки эффективны, так как GIL отпускается во время ожидания
Пример:
python
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
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы