2016-08-25 6 views
1

내 문제는 : 응용 프로그램에서 예약 된 작업을 추가하려면 APScheduler 라이브러리를 사용하고 있습니다. 같은 코드를 동시에 실행하는 여러 작업이 있지만 매개 변수가 다릅니다. 문제는 이러한 작업이 동시에 내 프로그램이 잘못 작동하게하는 동일한 방법에 액세스 할 때 발생합니다.파이썬에서 메소드 잠그기?

Python 3.4에서 메소드를 잠글 수있는 방법이 있는지 알고 싶습니다. 그래서 한 번에 하나의 스레드 만 액세스 할 수 있습니까? 그렇다면 간단한 예제 코드를 게시 할 수 있습니까? 감사. 자세한 내용은 Python 3 Lock ObjectsThread Synchronization Mechanisms in Python를 참조하십시오

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

:

from threading import Lock 
lock = Lock() 
... 

def foo(): 
    lock.acquire() 
    try: 
     # only one thread can execute code there 
    finally: 
     lock.release() #release lock 

또는 상황에 맞는 Managment를 가진 :

답변

2

당신은 기본 파이썬 잠금 장치를 사용할 수 있습니다.

+0

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

+0

대단히 고맙습니다.이게 내 문제를 해결했습니다. – DanijelT