반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 6987
- @P0
- dfs
- compose
- 매개변수탐색
- OFFSET
- 성적평가
- incr
- 연결요소
- 소프티어
- 오퍼레터
- 처우협의
- boj #19237 #어른 상어
- 경력
- Kafka
- Docker
- 퇴사통보
- 백준
- 기술면접
- 처우산정
- BOJ
- upper_bound
- softeer
- msSQL
- 백트래킹
- 13908
- 이분탐색
- 물채우기
- BFS
- 파라메트릭
Archives
- Today
- Total
기술 블로그
레이스 컨디션(Race Condition) 본문
728x90
반응형
레이스 컨디션(Race Condition)
- 둘 이상의 프로세스나 스레드가 공유자원에 동시에 접근하여 작업하려고 할 때, 비정상적인 결과가 발생하는 것
레이스 컨디션으로 인해 발생할 수 있는 문제점과 해결방법
- 멀티 스레드 환경에서는 프로세스 내의 모든 자원을 공유할 수 있다는 점에서 동기화 문제 발생
- 해결방법 : 동시에 여러 스레드가 공유 자원에 접근할 수 없도록 함.(한 개의 자원에 한 스레드만 접근 할 수 있게 하는 것을 의미)
하지만, 위의 해결방법으로 아래와 같은 문제점이 발생
- 스레드가 자원을 독점적으로 사용하고 있어 다른 스레드가 자원에 접근하려고 락을 획득하기 위해 무한 대기할 수 있는 상황이 발생할 수 있음. → 교착상태(DeadLock, 데드락) 발생
- 교착상태는 둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다릴 때 무한 대기에 빠지는 상황
교착상태(DeadLock, 데드락) 발생 조건 4가지(모두 충족해야 발생)
- 상호 배제 : 한 번에 프로세스 하나만 해당 자원을 사용할 수 있음
- 점유 대기 : 자원을 최소한 하나 보유하고, 다른 프로세스에 할당된 자원을 점유하기 위해 대기하는 프로세스가 존재해야 한다.
- 비선점 : 이미 할당된 자원을 강제로 빼앗을 수 없음
- 순환대기 : 대기 프로세스의 집합이 순환 형태로 자원을 대기하고 있어야 한다.
728x90
반응형
'온라인강의 > 선착순이벤트' 카테고리의 다른 글
kafka 토픽 생성, 프로듀서 실행, 컨슈머 실행 (1) | 2023.10.03 |
---|---|
docker kafka compose (0) | 2023.10.03 |
최초의 쿠폰 발급(선착순) Logic 문제점(Redis 적용 전) (0) | 2023.10.03 |
Redis incr 간단한 실습 (0) | 2023.10.03 |
선착순 이벤트 요구사항 정의 (0) | 2023.10.03 |