쓰레드의 동기화(1): Critical Section & Lock, snychronized
·
자바/프로세스와 쓰레드
1. Critical Section과 Lock - 싱글 쓰레드 프로세스의 경우 하나의 쓰레드가 자원을 가지고 작업하기 때문에 별 문제가 없지만, 멀티 쓰레드 프로세스의 경우 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로 영향을 주게 된다. - 쓰레드 A,B가 있다고 가정해보자. 쓰레드 A가 공유 데이터를 작업하는 도중 쓰레드 B가 제어권을 얻어 공유데이터를 변경하게 된다면, 사용자는 다른 결과를 얻게 될 것이다. - 이러한 일이 발생하는 것을 방지하기 위해서 한 쓰레드가 작업을 끝마치기 전까지 다른 쓰레드에 의해 방해받지 않도록 하는 것이 필요하다. - 그래서 도입된 개념이 바로 Critical Section과 Lock이다. ( 앞으로 간단하게 부르기 위해 전자는 CS를 후자는 L이라고 지칭한..