홈으로
Race Condition
September 28, 2021
- wiki/Race Condition: https://en.wikipedia.org/wiki/Race_condition#Computing
- 흐름이 여러개 존재하는 시스템에서 흐름들의 다양한 실행 순서에 따라 나타날 수 있는 다양한 상태.
- 여기서 race 는 종을 의미하는 것이 아니라 그대로 ‘경주’ 를 의미한다.
- 비동기적인 여러 흐름이 하나의 메모리 공간에 접근하도록 구현하였을 때, 그 공용 공간을 어떤 순서로 접근하느냐에 따라 다른 결과를 낸다.
- 이 때 의도하지 않는 결과가 나오는 상태를 Critical Race Condition 이라고 한다.
- 가령 어떤 정수 값을 1 증가시키는 함수를 실행하는 두 흐름이 동시에 실행될 때 값을 읽고 쓰는 것의 순서에 따라 결과 값이 1 증가할 수도 있고, 2 가 증가할 수도 있다.
- 이렇게 공용 메모리 공간에 대한 Race Condition 은 동시에 ‘Data Race’ 라고도 한다.