多线程中的共用变量访问 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值了*/
|