Вариант 1526877874.
В каких точках программы необходимо выполнять 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
Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?
Какие из перечисленных функций имеют побочные эффекты:
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)
Может ли возникнуть 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_B.acquire(); res_C.acquire(); res_A.acquire() # ... res_C.release(); res_B.release(); res_A.release() def proc3(): res_C.acquire(); res_A.acquire(); res_B.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();
def A(lst): def AA(x): return lst + [x] return AA def B(x): def BB(lst): return lst + [x] return BB def C(x, cache={}): if cache.has_key(x): return cache[x] def CC(lst): return lst + [x] cache[x] = CC return CC
Какие из приведенных ниже сравнений могут дать True, если объекты x и y имеют разные значения?
Чему будет равно значение следующего выражения:
import numpy as np print( np.shape(np.transpose(np.ones((2, 3, 4)))) )
Какой длины строки можно использовать в Python?
С помощью какой функции можно организовать цикл с параметром («for»)?