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

Какие риски выполнения задач знаешь

  1. Deadlock – взаимная блокировка потоков, когда каждый ждёт освобождения ресурса другим.

    python
    import threading
    lock1 = threading.Lock()
    lock2 = threading.Lock()
    
    def thread1():
        with lock1:
            with lock2:  # Может заблокироваться, если thread2 уже взял lock2
                pass
  2. Race Condition – недетерминированное поведение из-за порядка выполнения потоков.

    python
    counter = 0
    def increment():
        global counter
        counter += 1  # Не атомарная операция!
  1. Memory Leaks – утечки памяти, особенно при циклических ссылках (например, в графах объектов).

    python
    class Node:
        def __init__(self):
            self.parent = None  # Циклическая ссылка, если parent ссылается обратно
  2. Безопасность данных – SQL-инъекции, XSS (если Python используется в вебе).

    python
    # Плохо:
    query = f"SELECT * FROM users WHERE name = '{user_input}'"
    # Лучше:
    cursor.execute("SELECT * FROM users WHERE name = %s", (user_input,))
  3. Производительность – например, неоптимальные запросы к БД (N+1 проблема), блокирующие вызовы в асинхронном коде.

  4. Ошибки окружения – зависимости, версии Python, переменные окружения.

Способы снижения рисков:

  • Использование threading.Lock, asyncio, multiprocessing.
  • Профилирование (например, cProfile).
  • Статический анализ (mypy, pylint).
  • Тестирование (юнит-тесты, нагрузочные тесты).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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