Вариант 3124352080.
Может ли возникнуть 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_C.release() res_B.release() res_A.release() def proc2(): res_A.acquire() res_B.acquire() res_C.acquire() # ... res_C.release() res_B.release() res_A.release() p1 = threading.Thread(target=proc1, name="t1") p2 = threading.Thread(target=proc2, name="t2") p1.start() p2.start() p1.join() p2.join()
Какие из перечисленных функций имеют побочные эффекты:
lst = [] def A(l, x): return lst + [x] def B(l, x): lst.append(x) return lst def C(l, x): return lst.count(x)
Получен новый пакет (в виде исходных кодов) для Python. Какова рекомендуемая процедура установки нового модуля, если известно, что он использует «distutils»?
Что произойдет при повторном импорте модуля (в том же блоке кода) оператором import
Что будет выведено следующей программой?
a = 1 b = 2 a, b = b, a print(a, b, a)
Что делает следующая программа?
import threading l = threading.RLock() def proc(nm, n=0): l.acquire() try: if n < 5: print("*", end='') return proc(nm, n+1) else: return nm finally: l.release() for i in range(5): threading.Thread(target=proc, args=(str(i),)).start()
import threading res_A = threading.Lock() res_B = threading.Lock() def proc1(): res_A.acquire() res_B.acquire() # ... res_B.release() res_A.release() def proc2(): res_A.acquire() res_B.acquire() # ... res_B.release() res_A.release() p1 = threading.Thread(target=proc1, name="t1") p2 = threading.Thread(target=proc2, name="t2") p1.start() p2.start() p1.join() p2.join()
Из какого модуля будет работать функция «replace()» в следующем примере:
from sre import sub as replace from string import replace
Для чего в регулярном выражении используется "\w"?
Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?