请教一个关于pthread_create()传递最后一个参数的问题。

jxdz232601 jxdz232601 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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结构体,就是因为不能用全局变量,但是假如传入的是指针的话,那就和用全局变量差不多了。

一般用什么办法可以实现每次传进去的后线程使用的参数不一样?
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
jxdz232601
C语言 70,039 成员 243,237 内容