当前位置:  技术问答>linux和unix

pthread_creat 中 传另一个函数 的 参数 问题

    来源: 互联网  发布时间:2015-10-27

    本文导语:  比如 pthread_creat (&tid, NULL, &doSth, NULL); 如果 void *doSth (int a, int b) 那么a, b怎么传进去呢? | 线程的入口函数原形必须是: void *start(void *clientData); 你的程序可以是: struct ClientData { int a,b; }; void ...

比如 pthread_creat (&tid, NULL, &doSth, NULL);

如果
void *doSth (int a, int b)
那么a, b怎么传进去呢?

|
线程的入口函数原形必须是:
void *start(void *clientData);
你的程序可以是:
struct ClientData {
int a,b;
};

void *doSth(void *clientData) {
ClientData *cd = (ClientData*)clientData;
...
}

ClientData *cd = (ClientData*)malloc(sizeof(ClientData));
c->a = 1;
c->b = 2;
pthread_creat (&tid, NULL, &doSth, cd);
...

|
是的,你可以自定义一个数据对象,该数据对象包含你要传递的a、b信息,然后将该数据对象的地址传进去就ok了。
在线程内部,获取的参数是一个void *的指针类型,你强制转换为你的自定义的数据对象指针即可。

如:
typedef struct myArg
{
int a;
int b;
}sArg, *pArg;

创建线程时:
sArg myarg;
myarg.a = 1;
myarg.b = 2;
pthread_creat (&tid, NULL, &doSth, (void *)&myarg);

线程内部:
pArg *arg = (pArg)myarg;
int aa = arg->a;
int bb = arg->b;

    
 
 

您可能感兴趣的文章:

  • pthread_create函数执行问题
  • 关于pthread_create函数的问题
  • 无法使用pthread_creat()函数的问题
  • pthread_create函数编译时报错?
  • 急!同一个c文件里vfork();pthread_create();两个函数,Makefile该怎么写?谢谢
  • pthread_create传给执行函数的变量能不能有多个?
  • pthread_create函数返回值问题
  • 创建线程函数pthread_create,在c/c++的用法。
  • 用pthread_create建立线程后如何让线程运行的函数在create完了之后才实际运行 相当与windows下的CREATE_SUSPENDED ??
  • 请问一下红色字体处的区别,及pthread_self()和pthread_creat()函数第一个参数的区别?
  • pthread_create错误,怎么在C++类中定义线程函数指针
  • 请问:linux下如何将一个类的指针作为参数传给pthread_create创建的线程?
  • 有关使用pthread_creat时的参数传递问题!!!
  • 编程技术其它 iis7站长之家
  • 关于pthread_create()第四个参数的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 一个pthread_create 编译出错,是什么原因啊
  • Linux里的pthread_create会不会阻塞啊?
  • pthread_create的问题
  • 为什么pthread_create`编译通不过
  • 包含了#include <pthread.h>,为什么还有pthread_create错误?
  • pthread_create 的问题 ,求救大家!!!
  • linux下进程和线程的区别(fork(),pthread_create())?
  • REDHAT7.2提示:undefined reference to "pthread_create"
  • 请问:为什么我在守护进程里面用pthread_create来启动线程,经常会卡在那里阿?
  • pthread_create 为何报 Segmentation fault?
  • pthread_create编译错误
  • ★pthread_create 与 thr_create的区别是什么?★
  • 求助!!undefined reference to 'pthread_create'
  • pthread_create创建线程问题
  • 在LINUX GCC 编译错误 UnDefined reference to "pthread_creat"
  • No manual entry for pthread_create,我安了manpages-dev和glibc-doc
  • 为什么pthread_create创建线程出错.有完整代码,哪儿错了,大家给试试.
  • pthread_create所创建的线程中的static变量
  • (.text+0x57): undefined reference to `pthread_create'求解
  • 【紧急】关于pthread_create的问题!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3