2014-09-25 3 views
-1
should_go = False 
cv = Condition() 
while True: 
    with cv: 
     if not should_go: 
      cv.wait() 
     if should_go: 
      # process_time_cost_tasks() 
      should_go = False 


def request(): 
    with cv: 
     should_go = True 
     cv.notify() 

질문 : 작업 처리 시간 동안 잠금을 유지하는 것이 중요합니까 (상당히 길어 집니까?).Python 잠금 : 시간 제한 작업을 잠금 또는 조건부 변수에 넣어야합니까?

+0

예제를 실행 가능으로 설정하십시오. – Veedrac

+0

시간 제한 작업을 잠금 장치에 두는 것이 좋습니다. – user3201982

답변

0

should_go의 뮤텍스로 cv을 사용하려는 것 같습니다. bool assignment is atomic, so this is not needed.

process_time_cost_tasks의 자물쇠를 들고 있는지 묻는다면 request을 차단합니다. 그것은 자물쇠 다.

+0

시간 제한 작업을 잠금 장치에 두는 것이 좋습니다. – user3201982

+0

"시간 초과 작업"을 할 때 잠금 장치를 잠그시겠습니까? – Veedrac

+0

예. 그러나 약간의 두려움이 무언가는이 기간 동안 잘못됩니다. 사람들은 코드 내에서 가능한 한 짧게 만들어야한다고 말했습니다. – user3201982