for(i=0;i<SRVRECORD_NUM;i++) { pWncCfg_Srv = &pWncCfg->WncCfg_Srv[i]; pWncCfg->nSrvNo[i] = i; if(pWncCfg_Srv->enable) { // i变量存在线程不同步问题 // pthread_create(&tid, NULL, thread_Socket, &i); pthread_create(&tid, NULL, thread_Socket, &pWncCfg->nSrvNo[i]); } } /*直接使用循环变量i,发现创建后的线程中的线程号竟然是SRVRECORD_NUM,i变量为两个线程的公用变量,线程访问该指针时,主线程的i已是SRVRECORD_NUM值了*/
|
<script type="text/javascript">
</script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>