免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 29456 | 回复: 55
打印 上一主题 下一主题

大家都是怎么给pthread_create()创建的线程函数传递参数的呀? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-07-08 20:35 |只看该作者 |倒序浏览
1,传递int,short,char这样少于一个指针长度的类型的,强转成(void *),然后在线程里转回来用就可以;
2,传递多个参数的时候,创建线程的函数内malloc()一个结构体,把参数都放进去,然后传指针,线程函数结束时,在线程内部free();
3,前面同2,但是在主线程把子线程join回来,然后在主线程free();

但是"2"这种情况,一个函数malloc()另一个函数free(),感觉不爽。
第三种情况虽然做到同一个函数内申请释放了,但是子线程不能detach,且主线程必须等待所有子线程返回才能退出,也不爽。

有啥好方法吗?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-07-08 20:38 |只看该作者
第二个方法不是挺好吗,

论坛徽章:
0
3 [报告]
发表于 2010-07-08 20:41 |只看该作者
第二个方法不是挺好吗,
cookis 发表于 2010-07-08 20:38


自己申请自己释放比较不容易泄漏嘛

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2010-07-08 20:42 |只看该作者
你走火入魔了吧

论坛徽章:
0
5 [报告]
发表于 2010-07-08 20:43 |只看该作者
你走火入魔了吧
cookis 发表于 2010-07-08 20:42


:wink: 我蛋疼

论坛徽章:
0
6 [报告]
发表于 2010-07-08 20:43 |只看该作者
传多参数用结构体挺好的呀,但是malloc和free在一起比较好。

论坛徽章:
0
7 [报告]
发表于 2010-07-08 20:44 |只看该作者
传多参数用结构体挺好的呀,但是malloc和free在一起比较好。
buptzwp 发表于 2010-07-08 20:43


恩阿,那怎么改良下比较好呢?

论坛徽章:
0
8 [报告]
发表于 2010-07-08 21:19 |只看该作者
经常地做法:线程函数是类的静态函数,传递的参数是类的成员

论坛徽章:
0
9 [报告]
发表于 2010-07-08 21:21 |只看该作者
经常地做法:线程函数是类的静态函数,传递的参数是类的成员
rain_fish 发表于 2010-07-08 21:19


纯C程序员默默飘

论坛徽章:
0
10 [报告]
发表于 2010-07-08 21:22 |只看该作者
纯C程序员默默飘
聪聪知不道 发表于 2010-07-08 21:21



    {:3_189:} ,c/c++不分家。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP