더북(TheBook)

    for thread in threads:
        thread.join()
if __name__ == "__main__":
    main()

➊ 크기가 SIZE인 공유 메모리를 초기화한다.

➋ Producer 스레드는 공유 메모리에 데이터를 기록한다.

➌ Consumer 스레드는 공유 메모리로부터 끊임없이 데이터를 읽는다. 데이터가 사용 불가한 상태라면 대기한다.

➍ 모든 자식 스레드를 실행한다.

➎ 모든 자식 스레드의 실행이 끝날 때까지 대기한다.

이 코드에서는 ProducerConsumer 이렇게 두 스레드가 생성된다. Producer 스레드는 데이터를 생성하고 공유 메모리에 저장한다. Consumer 스레드는 공유 메모리에 저장된 데이터를 이용한다. 결과적으로 이들은 자신들이 공유하는 배열을 통해 정보를 교환한다. 위 코드를 실행하면 다음과 비슷한 결과가 출력된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.