deadlock (1) 썸네일형 리스트형 Multi-Threading ⑤ Synchronization & DeadLock 병행성의 문제를 해결하기 위해서는 '동기화' 라는 키워드를 사용합니다. 쉽게 말하자면, 동기화를 한 메소드에는 한 스레드 객체만이 접근할 수 있도록 자물쇠와 열쇠를 놓습니다. 한 스레드가 메소드에 접근을 하고 열쇠를 가지고 자물쇠를 잠근후에 들어갑니다. 해당 스레드가 동기화된 메소드에서 나오기 전까지는 키가 반납되지 않으므로 이후에 도착한 스레드들은 먼저 들어간 스레드가 나올때 까지 기다립니다. 이와 같은 방식을 동기화 한다고 합니다. 메소드명 앞에 Synchronized 라는 키워드를 통해서 동기화를 시켜 줄수 있습니다. 따라서 지난 예제에서 말썽을 부리게 된 increase() 라는 메소드 앞에 synchronized 키워드를 사용하면 문제를 해결할 수 있습니다. public synchronized .. 이전 1 다음