Thread Lock
-
스레드에서 발생하는 문제들Backend/Java and Trouble Shooting 2020. 2. 22. 21:43
스레드에서 다음과 같은 문제가 발생할 수 있다. 레이스 컨디션 데드록 스타베이션 라이브 록 다른 형태의 예측 불가 오류 1. 레이스 컨디션 멀티 스레드 환경에서 하나 이상의 '공유 데이터'를 처리할 때 아무런 록 처리를 하지 않을 경우, 동시에 여러 스레드에서 데이터를 수정해 버릴 수도 있다. 경우에 따라 동시에 스레드가 처리하러 들어왔을 때 데이터가 꼬여서 무한 대기하거나 무한 루프에 빠지는 경우를 레이스 컨디션 이라 한다. 2. 데드록 데이터를 안전하게 처리하기 위해서 거는 록에서 문제가 발생할 수도 있다. 두 개 이상의 스레드에서 이 록을 서로 풀리기만을 기다리는 상황을 데드록이라 한다. 스레드 1이 DataA에 록을 건 상태에서 변경 처리 후, DataB에 접근하려고 한다. 스레드 2이 DataB..