자바동기화동구

    [운영체제] 자바의 동기화 도구

    Java의 모든 객체는 락을 가지고 있다. 이 때, Synchronized메서드를 실행하기 위해서는 락을 얻어야 하는데 다음 2가지 상황이 발생할 수 있다. 1 ) 락을 요청했지만 만약 이미 실행중인 p가 있는 경우 -> 다른 p는 대기해야 한다. (진입 집합) 2 ) sync에 있던 p가 특정 조건을 기다려야 하는 경우 -> 대기 집합 [Java 모니터를 이용한 생산자/소비자] insert(E item) / E remove() 가 주요 함수 public synchronized void insert(E item) { while (count == BUFFER_SIZE) { // 버퍼가 꽉 차 있으면 try { wait(); 대기 } catch { InterruptedException ie } buffer[..