Встречается на собеседованиях • сегодня

Какие особенности многопоточности в 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
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы