多线程参数有关问题(就是线程带参数,怎么创建)

多线程参数问题(就是线程带参数,如何创建)
主:
ret = pthread_create (&thrd[0],NULL, (void*(*)(void*))TRASRcvPortData0, &mutex[0]);//发送线程
if(ret)
{
printf("pthread_create TRASRcvPortData 0: PortID = %d fail!\n",Port[SendPortNo].PortID);
return FALSE;
}
else
{
Port[SendPortNo].hPortRcv=thrd[0];
perror("pthread_0_create");
printf("thrd[0] TRASRcvPortData0 pthread_create\r\n");
}
  .............

void *TRASRcvPortData0(void)
{

while(ThreadRun)
{
  ............
  a=b[0]
  c=d[0]
  ............
  }
}
 是这样的,如果我要做n个线程的话,常理来说,需要
TRASRcvPortData0
TRASRcvPortData1
TRASRcvPortData2
TRASRcvPortData3
.....................,而这些函数里面的.只是一些参数不一样而已,其他的都一样的...

我尝试 TRASRcvPortData(int bj) 里面的.但是只可以执行一个的.后面就执行不了

请大侠帮我看下,,如果能够是多线程带些参数.这样我就一个函数即可.我可以动态的创建线程的多少了...........................................

怎么处理呢? 或者有什么更好的方法的!

------解决方案--------------------

HANDLE HandleThread = ::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread_Fun,你的参数,0,&dwID);

DWORD WINAPI Thread_Beep(LPVOID wParam)
{
你的参数 *pParam = (你的参数*)wParam;
return 0;
}

如果要多个线程同时运行
for(i =0;i < 10;i++)
{
HANDLE HandleThread = ::CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)Thread_Fun,你的参数i,0,&dwID);
}
------解决方案--------------------
线程函数用一个就行了,调用pthread_create后,每个线程函数都是一个线程入口函数(并不是每个线程入口函数必须定义不同的函数)。
至于线程参数问题,可以通过定义一组参数(或者用new的方法)传递给线程即可
------解决方案--------------------
还有,你最好去看看书,或者其他资料,我估计你对线程是什么玩意儿还一知半解的(不知道我猜的对不对,不对的话,也请不要介意,因为你提的问题,很容易让人对你产生误解)