락 (1) 썸네일형 리스트형 동기화와 락( Lock )의 종류에 대해 동기화란? 앞의 글에서 멀티 스레드를 사용할 때, 스레드는 stack영역만 독자적으로 할당받고 나머지 메모리 영역은 공유를 한다고 하였다. 그럼 heap, data영역에 있는 값에 여러 스레드가 동시에 접근을 하게 되면 어떻게 될까? 당연하게 문제가 생기는데 읽기와 쓰기가 동시에 일어날 수도 있기 때문에 원하는 대로 값들이 나오지 않고, 메모리 해제와 동시에 해당 메모리 영역을 가리키게 되면 프로그램이 crash날 가능성도 있다. 이러한 문제를 해결하기 위한 것이 동기화이다. 즉 멀티 스레드 환경에서 여러 스레드들이 같은 메모리주소나 값에 접근을 할 때, 서로 작업한 내용들을 일치시키는 것을 동기화라고 한다. 임계 영역( Critical Section )이란? 임계 영역이란 위에서 말한 여러 스레드들이 .. 이전 1 다음