두 개 이상의 프로세스가 공통 자원을 병행적으로 읽거나 쓸 때, 데이터에 대한 접근이

어떤 순서에 따라 이루어졌는지 그 실행결과가 달라지는 상황

코드를 동시성으로 작성했지만, 순차적 코드처럼 동작할 것이라고 예상할 때 발생한다.

→ 동시성 코드가 항상 특정한 순서로 실행될 것이라 가정하고 오해할 때 생기는 문제.

ex) DB의 접근과 웹 서비스를 호출하는 기능을 동시성 코드로 작성했지만, DB접근이 더 빠를 거라

예상해 웹 서비스 호출 작업이 끝나자 마자 DB작업 결과에 접근하려고 할 때

레이스 컨디션은 동시성 코드 일부가 제대로 작동하기 위해 일정한 순서로 완료돼야 할 때 발생한다.

이것은 동시성 코드를 구현하는 방법이 아니다.

원자성 위반, 교착 상태, 라이브락이 레이스 컨디션과 같은 일반적인 문제점이다.