Встречается на собеседованиях • сегодня
Какие особенности многопоточности в 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
интервью вопросы и ответы