Главная /
Язык программирования Python /
Что делает следующая программа? import threading l = threading.RLock() def proc(nm, n=0): l.acquire() try: if n < 5: print "*", return proc(nm, n+1) else: return nm finally: l.release() for i in range(5): threading.Thread(target=proc, args=(str(i),)).s
Что делает следующая программа?
import threading
l = threading.RLock()
def proc(nm, n=0):
l.acquire()
try:
if n < 5:
print "*",
return proc(nm, n+1)
else:
return nm
finally:
l.release()
for i in range(5):
threading.Thread(target=proc, args=(str(i),)).start()
вопрос
Правильный ответ:
беспрерывно печатает звездочки
печатает 1 звездочку и зависает
печатает 5 звездочек
печатает 25 звездочек
аварийно завершается при попытке выполнить
l.acquire()
во второй раз Сложность вопроса
68
Сложность курса: Язык программирования Python
62
Оценить вопрос
Комментарии:
Аноним
Я завалил экзамен, почему я не углядел этот великолепный сайт с всеми ответами интуит в начале года
06 янв 2019
Аноним
Зачёт всё. Иду отмечать отмечать отлично в зачётке по интуит
27 авг 2017
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Какое значение threadsafety соответствует ситуации, когда потоки могут одновременно использовать как DB-API 2.0 совместимый модуль, так и соединения, получаемые на основе этого модуля
- # Какое значение threadsafety соответствует ситуации, когда потоки могут одновременно использовать DB-API 2.0 совместимый модуль, но не соединения, получаемые на основе этого модуля
- # Какое исключение должно быть возбуждено DB-API 2.0-совместимым модулем при сбое в соединении с базой данных?
- # Какая ошибка допущена в следующем примере? 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()
- # Какой из операторов соответствует следующему псевдокоду: 1 0 LOAD_FAST 1 (y) 3 LOAD_ATTR 1 (a) 6 LOAD_FAST 0 (x) 9 STORE_ATTR 1 (a) 12 LOAD_CONST 0 (None) 15 RETURN_VALUE