프로세스에 한번에 여러 자원이 점유되지 못하기 때문에 스레드를 사용한다. 한 스레드는 + 연산 다른 스레드는 – 연산을 하게 된다. 이렇게 연산이 이루어지는 공간이 임계영역이고,이 자체가 동기화이다. 동기화 객체로는 뮤텍스(하나의 자원에만 접근) , 세마포어 (하나 이상 가능) 등 이벤트가 있으며 스레드에서 연산이 꼬이게 될 경우를 대비하기 위해 동기화 객체를 이용한다. ▶세마포어 세마포어는 빈 화장실 열쇠의 갯수에 비유할 수 있다. 즉 비어 있는 칸만큼 열쇠가 있다고 가정하면 예를 들어 네 개의 화장실에 자물쇠와 열쇠가 있다고 한다면 세마포어는 열쇠의 갯수를 계산하고 시작할 때 4의 값을 갖는다. 사람들이 화장실에 들어갈 때마다 열쇠의 숫자는 줄어들게 된다. 화장실 칸이 다 찰 경우 카운트는 0이 되며..