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

Какой опыт работы с threading

В Python модуль threading используется для создания и управления потоками. Основные моменты:

  • GIL (Global Interpreter Lock) ограничивает параллельное выполнение потоков для CPU-bound задач, но эффективен для I/O-bound операций.
  • Основные классы: Thread, Lock, Event, Condition, Semaphore.
  • Потоки разделяют память, что требует синхронизации (например, через Lock).

Пример:

python
import threading

def worker(num):
    print(f"Поток {num} начал работу")
    # Имитация работы
    time.sleep(1)
    print(f"Поток {num} завершил работу")

threads = []
for i in range(3):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()  # Ожидание завершения всех потоков

Нюансы:

  • Риск race condition (используйте Lock).
  • Потоки не гарантируют ускорение CPU-bound задач из-за GIL.
  • Для истинного параллелизма лучше multiprocessing.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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