같이 토 크 씨 밤 하 자 (제1 05 회: C 언어 실례 - 생산자 와 소비자 문제 1)
2976 단어 생산자 와 소비자생산자 와 소비자 문제
생산자 와 소비자 문 제 는 전형 적 인 프로 세 스 간 통신 예 로 프로 세 스 간 통신 을 설명 하 는 데 자주 사용 된다.다음은 생산자 와 소비자 문제 가 무엇 인지 소개 하 겠 습 니 다.
1. 생산자 와 소비자 문제 에 대한 개술
제품 을 보관 하기 위해 C 탱크 의 용량 이 있다.
생산자 A 는 끊임없이 연못 에 생산 이 완 성 된 제품 을 보관 하고 제품 이 연못 의 용량 C 에 도 달 했 는 지 판단 한다. 만약 에 제품 수량 이 연못 의 용량 C 에 이 르 면 생산 자 는 생산 을 중단 하고 소비자 가 연못 에서 제품 을 가 져 갈 때 까지 기다린다.
소비자 B 는 끊임없이 연못 에서 제품 을 가 져 가 고 연못 에 제품 이 있 는 지 판단 한다. 연못 에 제품 이 없 으 면 소비자 들 은 제품 을 가 져 가 는 것 을 중단 하고 생산자 가 제품 을 생산 하 기 를 기다린다.
2. 생산자 와 소비자 문제 의 실현
우 리 는 생산 과 소비자 문 제 를 실현 하 는 방향 을 소개 한다.
4. 567917. 생산자 와 소비 자 는 모두 과정 이기 때문에 과정 이 있어 야 하고 두 가지 과정 이 필요 하 다
4. 567917. 생산 자 는 제품 을 생산 하 는 동작 이 있 고 소비 자 는 제품 을 가 져 가 는 동작 이 있 으 며 이 두 동작 은 질서 있 게 진행 되 어야 하기 때문에 프로 세 스 를 동기 화해 야 한다
4. 567917. 생산자 와 소 비 는 모두 연못 에 대해 저장 / 제품 을 가 져 가 는 작업 을 한다. 이 를 통 해 연못 은 임계 구역 임 을 알 수 있 기 때문에 프로 세 스 간 통신 을 사용 하고 프로 세 스 동기 화 를 통 해 프로 세 스 간 의 통신 을 제어 해 야 한다
우 리 는 생산자 와 소비자 문 제 를 실현 하기 위해 서 는 프로 세 스 를 만 들 거나 끝내 야 한다.프로 세 스 간 통신 도 필요 합 니 다. 프로 세 스 통신 은 앞의 장 에서 소개 할 수 있 는 파이프, 공유 메모리, 메시지 큐 에서 통신 방식 을 선택 할 수 있 습 니 다.마지막 으로 신 호 량 을 사용 하여 프로 세 스 통신 을 동기 화 합 니 다.
생산자 와 소비자 문제 가 프로 세 스 와 관련 된 모든 지식 을 사용 한 것 을 볼 수 있 고 프로 세 스 지식 에 대한 종합 적 인 응용 으로 볼 수 있다.우 리 는 앞의 장 에서 프로 세 스 의 지식 체계 도 를 정리 하고 정리 하 였 으 며, 잊 어 버 리 면 여 기 를 클릭 하여 볼 수 있다.
다음은 생산자 와 소비자 문제 의 위조 코드 입 니 다. 참고 하 시기 바 랍 니 다.
produce()
{
while(true)
{
p(sem); // P/V
if(count < C) //
{
produce(); // ,
count++;
}
else
break; // ,
v(sem);
}
}
customer()
{
while(true)
{
p(sem); // P/V
if(count > 0) //
{
custome(); //
count--;
}
else
break; // ,
v(sem);
}
}
여러분, 생산자 와 소비자 문제 에 관 한 예 는 여기까지 입 니 다.뒤에 또 어떤 예 가 있 는 지 알 고 싶 으 면 다음 회 에 설명 을 들 어 보 세 요.