[ZLG-ARM] 多线程中的共用变量访问

[复制链接]
 楼主| reeper 发表于 2009-4-9 15:14 | 显示全部楼层 |阅读模式
多线程中的共用变量访问&nbsp;&nbsp;<br />for(i=0;i{<br />&nbsp;&nbsp;&nbsp;&nbsp;pWncCfg_Srv&nbsp;=&nbsp;&pWncCfg-&gtWncCfg_Srv;<br />&nbsp;&nbsp;&nbsp;&nbsp;pWncCfg-&gtnSrvNo&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(pWncCfg_Srv-&gtenable)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;i变量存在线程不同步问题&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;pthread_create(&tid,&nbsp;NULL,&nbsp;thread_Socket,&nbsp;&i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pthread_create(&tid,&nbsp;NULL,&nbsp;thread_Socket,&nbsp;&pWncCfg-&gtnSrvNo);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/*直接使用循环变量i,发现创建后的线程中的线程号竟然是SRVRECORD_NUM,i变量为两个线程的公用变量,线程访问该指针时,主线程的i已是SRVRECORD_NUM值了*/<br /><br /><br /><br /><br /><br />for(i=0;i{<br />&nbsp;&nbsp;&nbsp;&nbsp;pWncCfg_Srv&nbsp;=&nbsp;&pWncCfg-&gtWncCfg_Srv;<br />&nbsp;&nbsp;&nbsp;&nbsp;pWncCfg-&gtnSrvNo&nbsp;=&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(pWncCfg_Srv-&gtenable)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;i变量存在线程不同步问题&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;pthread_create(&tid,&nbsp;NULL,&nbsp;thread_Socket,&nbsp;&i);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pthread_create(&tid,&nbsp;NULL,&nbsp;thread_Socket,&nbsp;&pWncCfg-&gtnSrvNo);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />/*直接使用循环变量i,发现创建后的线程中的线程号竟然是SRVRECORD_NUM,i变量为两个线程的公用变量,线程访问该指针时,主线程的i已是SRVRECORD_NUM值了*/<br />&nbsp;<br /> &nbsp;&nbsp;<br />
zcying 发表于 2009-4-9 15:16 | 显示全部楼层

这是细节问题了

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

139

主题

185

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部