wait() (1) 썸네일형 리스트형 [JAVA] 쓰레드의 동기화 멀티 쓰레드 프로그램에서는 프로세스의 자원을 여러 쓰레드가 공유한다. 그렇기 때문에 각각의 작업이 다른 작업에게 영향을 끼치게 된다. 이러한 경우 공유 데이터의 변경으로 인해 개발자가 의도했던 결과가 나오지 않을 수 있다. 이러한 문제를 해결하기 위해서 임계영역 (critical section) 과 락 (lock) 개념을 도입하여 한 쓰레드가 작업을 종료할 때까지 다른 쓰레드에게 방해받지 않도록 한다. 공유 데이터를 임계영역으로 지정해놓고, 해당 영역의 lock 을 획득한 쓰레드만이 공유 데이터를 사용할 수 있도록 하여 문제를 해결한다. 이처럼 한 쓰레드가 진행 중인 다른 쓰레드를 방해하지 못하도록 막는 것을 쓰레드의 동기화 (synchronization) 이라고 한다. 자바에서는 synchronized.. 이전 1 다음