Главная / Язык программирования Python / Какая ошибка допущена в следующем примере? import threading global to_eval cond = threading.Condition() def evaluate_something(x): return 2**int(x) def evaluator(name): global to_eval while True: cond.acquire() while not to_eval: cond.wait() v = to_eval.p

Какая ошибка допущена в следующем примере? import threading global to_eval cond = threading.Condition() def evaluate_something(x): return 2**int(x) def evaluator(name): global to_eval while True: cond.acquire() while not to_eval: cond.wait() v = to_eval.pop() cond.release() print name, ":", evaluate_something(v) to_eval = [] for n in range(3): ev = threading.Thread(target=evaluator, args=(str(n),)) ev.setDaemon(1) ev.start() while 1: inp = raw_input('Вводите: ') cond.acquire() to_eval.append(inp) cond.notifyAll() cond.release()

вопрос

Правильный ответ:

cond.acquire() должен стоять перед to_eval.pop()
cond.acquire() и cond.release() в цикле while 1 не требуется
не обрабатываются исключения в потоках
ошибок нет
Сложность вопроса
41
Сложность курса: Язык программирования Python
62
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Экзамен прошёл на 4.
26 окт 2018
Аноним
Я провалил зачёт, какого рожна я не увидел данный сайт с ответами с тестами intuit в начале сессии
08 сен 2017
Оставить комментарий
Другие ответы на вопросы из темы интернет-технологии интуит.