>source

여기 내 문제가 있습니다. 내 애플리케이션에 예약된 작업을 추가하기 위해 APScheduler 라이브러리를 사용하고 있습니다. 동일한 code를 동시에 실행하지만 매개변수가 다른 여러 작업이 있습니다. 이러한 작업이 동일한 방법에 동시에 액세스하여 내 프로그램이 잘못 작동할 때 문제가 발생합니다.

한 번에 하나의 스레드만 액세스할 수 있도록 Python 3.4에서 메서드를 잠그는 방법이 있는지 알고 싶습니다. 그렇다면 간단한 예제 code를 게시해 주시겠습니까? 감사 해요.

  • 답변 # 1

    기본 파이썬 잠금 메커니즘을 사용할 수 있습니다.

    from threading import Lock
    lock= Lock()
    ...
    def foo():
        lock.acquire()
        try:
            # only one thread can execute code there
        finally:
            lock.release() #release lock
    

    또는 컨텍스트 관리:

    def foo():
        with lock:
            # only one thread can execute code there
    

    자세한 내용은 및 를 참조하십시오.

    잠금은 컨텍스트 관리 프로토콜을 지원하므로 일반적으로 명시적 메서드 호출 대신 해당 사용을 승격해야 합니다.

    Dimitris Fasarakis Hilliard2022-01-27 22:00:50
  • 이전 angular : Api를 사용할 때 Ag Grid의 무한 스크롤이 작동하지 않음
  • 다음 python : 동기 스레드와 비동기 스레드를 구별하는 방법은 무엇입니까?