[Java 기능] 동기화 구현 (2) - 한정적인 리소스에 접근하는 경우
·
Java & Kotlin
wait(), notify() 메서드를 활용한 동기화 프로그래밍 리소스가 available하지 않은 경우 쓰레드에 wait() 메서드를 호출하여 Not Runnable 상태가 됨 wait() 상태가 된 쓰레드는 notify() 메서드가 호출될 때까지 대기함 리소스가 available 해지면 notify() 메서드가 호출되고 wait() 상태에 있는 쓰레드 중 무작위로 하나의 thread를 재시작 notifyAll() 메서드가 호출되면 wait() 상태의 모든 쓰레드가 재시작되고 available한 자원만큼의 쓰레드만 수행됨 자원을 갖지못한 쓰레드는 다시 wait() 상태가 됨 notify()를 호출하는 경우 무작위로 호출하기 때문에 계속 실행되지 못하는 쓰레드가 있을 수 있음 자바에서는 notifyAll..