Главная /
Язык программирования Python /
Что делает следующая программа? import threading l = threading.Lock() 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),)).st
Что делает следующая программа?
import threading
l = threading.Lock()
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() во второй раз Сложность вопроса
52
Сложность курса: Язык программирования Python
62
Оценить вопрос
Комментарии:
Аноним
Это очень легкий решебник интуит.
29 сен 2016
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Может ли возникнуть deadlock в следующей программе: import threading res_A = threading.Lock() res_B = threading.Lock() res_C = threading.Lock() def proc1(): res_A.acquire(); res_B.acquire(); res_C.acquire() # ... res_B.release(); res_C.release(); res_A.release() def proc2(): res_A.acquire(); res_B.acquire(); res_C.acquire() # ... res_C.release(); res_B.release(); res_A.release() def proc3(): res_A.acquire(); res_B.acquire(); res_C.acquire() # ... res_A.release(); res_B.release(); res_C.release() p1 = threading.Thread(target=proc1, name="t1") p2 = threading.Thread(target=proc2, name="t2") p3 = threading.Thread(target=proc3, name="t3") p1.start(); p2.start(); p3.start() p1.join(); p2.join(); p3.join();
- # Начало определения функции f выглядит так: def f(a, b, c=None, d="0"): Какие из следующих вариантов вызова не приведут к ошибке на этапе присваивания фактических параметров формальным?
- # В модуле xml.dom.minidom создать объект, представляющий XML-документ, можно:
- # Какая ошибка допущена в следующем фрагменте программы, если node — объект, представляющий узел DOM? for (k, v) in node.attributes.items(): print k, v
- # К какому уровню модели взаимодействия открытых систем относится протокол TCP?