В каких точках программы необходимо выполнять acquire() и release() замка Z, чтобы функция f могла правильно работать в многопоточном приложении? (Как обычно, нужно минимизировать общее время, на которое запирается замок)def f(x, y, z): global d1, d2 # 1 d1[(x, y)] = z # 2 d2[z] = (x, y) # 3 res = len(d2) # 4 return res
(Отметьте один правильный вариант ответа.)
Варианты ответа
1: Z.acquire(), 2: Z.release(), Z.acquire(), 3: Z.release()
замок не нужен
1: Z.acquire(), 4: Z.release()
1: Z.acquire(), 3: Z.release()(Верный ответ)