[리눅스] 생산자와 소비자 구현 (fork,pthread,semaphore,mutex)
- 최초 등록일
- 2011.07.05
- 최종 저작일
- 2011.05
- 압축파일
- 가격 10,000원
소개글
1. 생산자는 버퍼가 꽉 찼을 경우 소비자가 소비할 때까지 생산하지 않는다.
2. 소비자는 버퍼가 비었을 경우 생산자가 생산할 때까지 소비하지 않는다.
-프로그램 내용
ㄱ. fork()와 pipe()를 이용한 생산자와 소비자 구현
ㄴ. fork()와 pipe()를 이용한 생산자와 소비자 구현 (두번째 방법)
ㄷ. pthread()만을 이용한 생산자와 소비자 구현
ㄹ. pthread와 pthread_mutex_lock 을 이용한 생산자와 소비자 구현
ㅁ. pthread와 pthread_mutex_lock, pthread_cond_wait, signal 을 이용한 생산자와 소비자 구현
ㅂ. pthread와 pthread_mutex_lock, semaphore를 이용한 생산자와 소비자 구현
컴파일 실행환경
GCC
본문내용
1. pthread의 mutex만을 이용한 생산자/소비자
#include <stdio.h>
#include <pthread.h>
int buffer[100];
int count = 0;
int in = -1, out = -1;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void* producer(void *pData);
void* consumer(void *pData);
int main(void)
{
int i;
pthread_t threads[2];
pthread_create(&threads[0], NULL, producer, NULL);
pthread_create(&threads[1], NULL, consumer, NULL);
for (i=0; i<2; i++)
pthread_join(threads[i], NULL);
return 0;
}
압축파일 내 파일목록
생산자소비자2.docx
pthreadmutex.c
pthreadmutex2.c
pthreadmutex3.c
forkpipe.c
forkpipe2.c
pthread.c
생산자소비자1.docx
참고 자료
없음