Главная /
Язык программирования 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
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Что будет выведено следующей программой: A = B = 1 a = "A" * 5 b = "B" * 5 a = a + b * 5 print a, b
- # Имеются следующие определения: def m1(self): print "m1" class M: def m2(self): print "m2" m = M() Какой из фрагментов кода содержит ошибки?
- # Чему будет равно значение следующего выражения: shape(array([[1, 2, 3], [4, 5, 6]], Float))
- # Какой класс из какого модуля пакета email служит для вложения в сообщение другого сообщения?
- # Какие модули входят в пакетemail?