2012-10-04 2 views
1

C 프로그램 소스 코드를 찾고 있는데요. 아래 언급 된 소스 코드를 찾는 데 도움을주십시오.스레드 간 공유 메모리

다중 스레드 (하나의 마스터 스레드와 나머지 작업자 스레드)를 만들고 공유 메모리에 쓰고 읽는 스레드를 사용하는 프로그램입니다.

+2

당신은 무엇을 시도 했습니까? 어디서 붙어 있니? 다양한 플랫폼에서 쓰레드 생성과 공유 메모리 사용에 관한 정보가 인터넷에 있습니다. –

+2

스택 오버플로에 오신 것을 환영합니다. 귀하의 질문은 '내놔 코드'질문이지만, 그런 질문은 그렇게 권장하지 않습니다. [FAQ]를 읽으십시오. 당신은 대답하는데 약간의 노력을 보여줄 것이고, 당신이 마주 치고있는 문제의 세부 사항에 대해 물어볼 것입니다. 플랫폼을 언급하는 것도 좋은 생각입니다. 유닉스 계열 시스템에 대한 대답은 Windows 계열 시스템에 대한 대답과 다릅니다 (안드로이드 나 iOS에서는 다를 수 있습니다). 공유 메모리에 대한 액세스를 제어하려면 동기화 메커니즘이 중요한 결정일 것입니다. 스레드는 모두 동일한 메모리를 공유합니다. –

답변

2

모든 전역 변수는 스레드의 공유 메모리 영역입니다. 'x'는 전역이며 다음 예에서 모든 스레드간에 공유됩니다.

#include<pthread.h> 
#include<stdio.h> 
int sharedx=0; 
void *threadFunc(void *arg) 
{ 
    printf(" %d %s", sharedx,(char*)arg); 
    sharedx++; 
} 
int main(void) 
{ 
    pthread_t pth[10]; // this is our thread identifier 
    int i = 0; 
    for(i; i<10; i++) { 
     pthread_create(&pth[i],NULL,threadFunc,"processing..."); 
    } 
}