В Python документах здесь указано, что
Если заблокировано более одного потока в ожидании разблокировки, будет одновременно только один поток. возможность захватить владение замком. В этом случае нет возвращаемого значения.
Но в , в каком случае?
Я экспериментировал со следующим кодом в I Python:
import time, threading
def func(rlock):
print(rlock.acquire())
for i in range(4):
print(i)
time.sleep(1)
rlock.release()
print('done')
rlock = threading.RLock()
# 2 threads
threading.Thread(target=func, args=[rl]).start()
threading.Thread(target=func, args=[rl]).start()
Один поток начинает работать после освобождения rlock
, а затем другой:
rlock.release()
Выход
True
0
1
2
3
done
True
0
1
2
3
done
В обоих потоках rlock.acquire()
получил возвращаемое значение True
.
Ищете пример, где rlock.acqure()
не имеет возвращаемого значения (возвращено None)?