2014-03-03 2 views
0

사서함을 사용하는 메시지 전달 시스템이 있다고 가정합니다. 전체 메일 함으로 전송하거나 빈 메일 함에서받은 경우 프로세스가 차단되지 않고 대신 오류 코드가 반환됩니다. 이 프로세스는 성공할 때까지 반복해서 반복해서 시도함으로써 오류 코드에 응답합니다. 이것이 경쟁 조건으로 이어질 수 있습니까?이 시나리오로 경쟁 조건이 발생할 수 있습니까?

+0

지연없이 루핑하여 (예 : 편지함에 메시지가 있음) 어떤 이벤트가 발생하기를 기다리며 "통화 대기"라고합니다. 경쟁 조건이 아니지만 여전히 바람직하지 않습니다. – Buhb

답변

0

우선 무엇을 의미하는지 검토하는 것이 좋습니다 race condition.

전자 메일을 수신/검색 할 때 사서함 시스템에서 "원 자성"을 처리하면 경쟁 조건이 없습니다. 앱이 메시지를 검색하려고 계속 반복 할 수는 있지만 경쟁 조건이 아닙니다.

이제 사서함 시스템에서 어떤 종류의 잠금 메커니즘도 사용하지 않는다고 가정 해 봅시다. 동시에 새 메시지가 있는지, 새 메시지가 사서함에 도착했는지 읽으려고하면 아직 도달하지 않아 완료되지 않은 메시지를 읽을 수 있습니다. 행동은 당신이 가지고 있지만 가장 좋은 경우

, 당신은되지 않은 메시지가 있지만 일반적으로 충돌 등으로 인해 잘못된 포인터의

0

당신은 그 자체가 경주로 이어질하지 않을에서 설명하는 상황이 발생합니다 오류에 대한 응답은 빈 메일 함으로 "탐지 된이 메일 함이 비어 있습니다"라는 메시지를 누를 수 있습니다. 두 개의 스레드에서 그렇게하면 두 개의 메일로 쉽게 끝날 수 있습니다.

관련 문제