打印
[ZLG-ARM]

多线程中的共用变量访问

[复制链接]
1508|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
reeper|  楼主 | 2009-4-9 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
多线程中的共用变量访问  
for(i=0;i{
    pWncCfg_Srv = &pWncCfg->WncCfg_Srv;
    pWncCfg->nSrvNo = i;
    if(pWncCfg_Srv->enable)
    {
      // i变量存在线程不同步问题 
      // pthread_create(&tid, NULL, thread_Socket, &i);
      pthread_create(&tid, NULL, thread_Socket, &pWncCfg->nSrvNo);
    }
}

/*直接使用循环变量i,发现创建后的线程中的线程号竟然是SRVRECORD_NUM,i变量为两个线程的公用变量,线程访问该指针时,主线程的i已是SRVRECORD_NUM值了*/





for(i=0;i{
    pWncCfg_Srv = &pWncCfg->WncCfg_Srv;
    pWncCfg->nSrvNo = i;
    if(pWncCfg_Srv->enable)
    {
      // i变量存在线程不同步问题 
      // pthread_create(&tid, NULL, thread_Socket, &i);
      pthread_create(&tid, NULL, thread_Socket, &pWncCfg->nSrvNo);
    }
}

/*直接使用循环变量i,发现创建后的线程中的线程号竟然是SRVRECORD_NUM,i变量为两个线程的公用变量,线程访问该指针时,主线程的i已是SRVRECORD_NUM值了*/
 
   

相关帖子

沙发
zcying| | 2009-4-9 15:16 | 只看该作者

这是细节问题了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝