涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程 定义一个结构体 struct mypara { var para1;//参数1 var para2;//参数2 } 将这个结构体指针,作为void *形参的实际参数传递 struct mypara pstru; pthread_create(&ntid, NULL, thr_fn,& (pstru)); 函数中需要定义一个mypara类型的结构指针来引用这个参数 void *thr_fn(void *arg) { mypara *pstru; pstru = (* struct mypara) arg; pstru->para1;//参数1 pstru->para2;//参数2 }
传入必须是一个地址 接受函数可以接收指针或者引用 如: typdef struct {} ITEM; ITEM item; pthread(&pt,NULL,void*(*)(void*)RunOnce,&item); int RunOnce(ITEM& _item) { ITEM& item=_item;//上次忘了写这句话, 直接用_item,结果指针好像错位了.也不知道哪里错了.郁闷 //TO_DO } 或者int RunOnce(ITEM* _pitem) { ITEM* pitem=_pitem; //TO_DO }