2013-03-02 3 views
0

Может кто-нибудь дать мне пример кода, когда мне нужно использовать Rlock вместо простого lock Я не могу найти использовать случай, когда мне нужно RLOCKне в состоянии понять, питона, когда нам нужно Rlocking нить

Я прочитал это, но не мог получить фактическое использование этого

объектов Нормальный замок не может быть приобретено более чем один раз, даже в же потоке. Это может привести к нежелательным побочным эффектам, если блокировка имеет , доступ к которой осуществляется более чем одной функцией в той же цепочке вызовов.

+0

[@User] (http://stackoverflow.com/users/1320237/user) ответил на ваш вопрос, вы можете взглянуть на это: [http://stackoverflow.com/a/16568426/5514109] (http://stackoverflow.com/a/16568426/5514109) –

ответ

0

Это в основном проблема для конечно-закрытых замков (вы выполняете большую работу, удерживая замок). Поток будет зависать, если он попытается получить блокировку более одного раза. Риск растет по мере того, как система становится сложной, и многие функции приобретают блокировку. Предположим, что функции f1, f2, ... fn приобретают замок. Если f1 вызывает f2, он зависает. Если f1 вызывает некоторую другую функцию, и эта функция вызывает f2, она зависает. Вы в конечном итоге реализуете два набора функций - те, которые получают блокировку, и те, которые реализуют функциональность. «outies» и «innies». RLocks позволяет вам быть более расслабленным.

+0

Можете ли вы дать мне пример кода этого – user192362127

Смежные вопросы