当前位置: 技术问答>linux和unix
怎样在多线程中传递参数?
来源: 互联网 发布时间:2015-07-30
本文导语: 怎样在多线程中传递参数? 如下例子: 我需要将主函数的nValue传递到子函数 main () { ...... //nValue是一个变化的数,在不同的线程里的值不同 int m = nValue; //根据需要开辟不同的线程 pthread_create(&net_thread,NULL,NetThre...
怎样在多线程中传递参数?
如下例子:
我需要将主函数的nValue传递到子函数
main ()
{
......
//nValue是一个变化的数,在不同的线程里的值不同
int m = nValue;
//根据需要开辟不同的线程
pthread_create(&net_thread,NULL,NetThread,&new_fd);
......
}
void *NetThread(void *arg)
{
printf("thread num = %dn",nValue); //此nValue为主程序中传递过来的值
}
请问,我该如何处理?谢谢
如下例子:
我需要将主函数的nValue传递到子函数
main ()
{
......
//nValue是一个变化的数,在不同的线程里的值不同
int m = nValue;
//根据需要开辟不同的线程
pthread_create(&net_thread,NULL,NetThread,&new_fd);
......
}
void *NetThread(void *arg)
{
printf("thread num = %dn",nValue); //此nValue为主程序中传递过来的值
}
请问,我该如何处理?谢谢
|
pthread_create(&net_thread,NULL,NetThread,(void*)nValue);
|
pthread_create(&net_thread,NULL,NetThread,&nValue);
void *NetThread(void *arg)
{
printf("thread num = %dn",*(int*)arg); //此nValue为主程序中传递过来的值
}
void *NetThread(void *arg)
{
printf("thread num = %dn",*(int*)arg); //此nValue为主程序中传递过来的值
}
|
pthread_create第四个参数传过去不就得了。注意用void *,做转换。
|
定义为全局变量如何,只是多占一点系统资源