2012-10-04 181 views
1

我在尋找C程序源代碼。你能幫我找到下面提到的源代碼嗎?線程之間的共享內存

程序創建多個線程(一個主線程和其餘工作線程)並使用線程寫入和讀取共享內存。

+2

你試過了什麼?你卡在哪裏?互聯網上有大量關於線程創建和各種平臺上共享內存使用情況的信息。 –

+2

歡迎來到Stack Overflow。你的問題是'給代碼'問題,但這樣的問題不會被鼓勵。請閱讀[常見問題]。預計你會在回答中表現出一些努力,並詢問你遇到的問題的細節。提到平臺也是一個好主意; Unix類系統的答案與Windows類系統的答案不同(對於Android或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..."); 
    } 
}