>  Q&A  >  본문

threadingtest - python threading中的lock rlock 为何rlock可以调用多次acquire

在python的多线程中,使用threading中的lock rlock锁, 为何rlock可以调用多次acquire,lock缺不能,lock调用多次而且会发生死锁,rlock不会,求大神指点下

阿神阿神2741일 전600

모든 응답(2)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-18 10:33:29

    rlock은 재진입 잠금입니다. 획득에는 +1의 카운터가 있고 음수 값은 허용되지 않습니다. 그렇지 않으면 예외가 발생합니다. .

    이 작업을 수행하는 이유는 무엇입니까? 애플리케이션 시나리오가 다르기 때문에 재진입 잠금은 잠금이 필요한 다른 메서드를 호출할 수 있지만 비재진입 잠금은 이를 수행할 수 없습니다.

    으아아아

    회신하다
    0
  • PHPz

    PHPz2017-04-18 10:33:29

    lock과 rlock의 차이점은 r입니다.
    재진입 가능하며 스레드는 차단되지 않고 동일한 rlock을 여러 번 획득할 수 있습니다. 스레드가 rlock을 여러 번 획득하면 동일한 번호를 해제해야 합니다. 그래야만 이 rlock이 해제될 수 있습니다.

    잠금은 한 번만 획득할 수 있으며 해제되기 전에는 다시 획득할 수 없습니다.

    자세한 내용은 다음 답변을 참조하세요.
    http://stackoverflow.com/ques...

    회신하다
    0
  • 취소회신하다