请教一个关于pthread_create()传递最后一个参数的问题。
struct fun_argu;
while(循环6次){
... \\这里修改fun_argu的内容
pthread_create(id, attr, funname, &fun_argu);
}
这个情况中,函数调用,最后一个fun_argu是一个结构体,创建好后传给pthread_create,但是pthread_create最后一个参数传递的必须是个指针,所以我传了&fun_argu。
那问题就出现了,由于循环太快了,线程里面还没来得及用fun_argu,fun_argu就已经变了6次,导致最后6个线程使用的fun_argu都是一样的。
本来建fun_argu结构体,就是因为不能用全局变量,但是假如传入的是指针的话,那就和用全局变量差不多了。
一般用什么办法可以实现每次传进去的后线程使用的参数不一样?