【问题标题】:Shared memory between threads [closed]线程之间的共享内存[关闭]
【发布时间】:2012-10-04 05:56:10
【问题描述】:

我正在寻找 C 程序源代码。你能帮我找到下面提到的源代码吗?

程序创建多个线程(一个主线程和其余工作线程)并使用线程写入和读取共享内存。

【问题讨论】:

  • 你尝试了什么?你被困在哪里了?互联网上有大量关于不同平台上线程创建和共享内存使用的信息。
  • 欢迎来到 Stack Overflow。您的问题是“给我代码”问题,但不鼓励在 SO 上提出此类问题。请阅读FAQ。您应该在回答方面表现出一些努力,并询问您遇到的问题的详细信息。提及平台也是一个好主意;类 Unix 系统的答案与类 Windows 系统的答案不同(对于 Android 或 iOS 可能再次不同)。对于共享内存的受控访问,您的同步机制可能是关键决定;线程都共享相同的内存。

标签: c shared-memory


【解决方案1】:

所有的全局变量都是线程的共享内存区域。 '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...");
    }
}

【讨论】:

    猜你喜欢
    • 2017-11-30
    • 2016-03-01
    • 2012-07-06
    • 1970-01-01
    • 2014-04-19
    • 2019-06-02
    • 2011-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多