Вариант 3358002150.
Имеются следующие определения:
class A: def am(self): print "am" class B: def bm(self): print "bm" a = A() b = B()
Какой из фрагментов кода содержит ошибки?
Как называется отношение, которое имеют следующие два класса:
class A: def __init__(self, **atts): self._atts = atts def __repr__(self): return ":" + str(self._atts) class B(list): def __init__(self, *params): super(B, self).__init__(params)
Может ли возникнуть deadlock в следующей программе:
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()
Что делает следующая программа?
import threading class PR(threading.Thread): def __init__(self, n): threading.Thread.__init__(self, name="t" + n) self.n = n def run(self): import time time.sleep(1) print("*", end='') p1 = PR("1") p2 = PR("2") p1.start() p2.start()
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();
Что будет выведено следующей программой?
S = 0 for i in range(1, 10): for j in range(1, 3): if i == j: S = S + i + j break print(S)
Какую роль играет xx в Python-программе, и чему должен быть равен XXX:
class A(object): def xx(cls, x): ... xx = XXX(xx)
import threading class PR(threading.Thread): def __init__(self, n): threading.Thread.__init__(self, name="t" + n) self.n = n def run(self): import time time.sleep(1) print "*" p1 = PR("1") p2 = PR("2") p1.start() p2.start()
В каких точках программы необходимо выполнять acquire() и release() замка Z, чтобы функция f могла правильно работать в многопоточном приложении? (Как обычно, нужно минимизировать общее время, на которое запирается замок)
def f(x): # 1 fc = open("file.txt", "w+") # 2 fc.write(x) # 3 fc.write("\n") # 4 fc.close() # 5
a = "AB" b = "BC" print("%sa, b" % a, b)