涉及多参数传递给线程的,都需要使用结构体将参数封装后,将结构体指针传给线程
定义一个结构体
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
}