【C】——如何用线程进行参数的传递
2024-09-29 04:33:00
直接上代码:
#include<pthread.h>
#include<stdio.h> struct val{
int num1;
int num2;
}; //send a int to arg
void *text(void *arg)
{
int *p = (int *)arg;
printf("arg is %d\n",*p);
pthread_exit(NULL);
} //send char to arg
void *text2(void *arg)
{
char *d = (char *)arg;
printf("arg is %s\n",arg);
pthread_exit(NULL);
} //send a struct to arg
void *text3(void *arg)
{
struct val *v = (struct val *)arg;
printf("arg is v.num1:%d,v.num2:%d\n",v->num1,v->num2);
pthread_exit(NULL);
} int main()
{
pthread_t pth;
char val[] = "i am arg.";
int arry = ;
pthread_create(&pth, NULL, text,(void *)&arry);
pthread_join(pth, NULL); pthread_create(&pth, NULL, text2, (void *)val);
pthread_join(pth, NULL); struct val v;
v.num1 = ;
v.num2 = ;
pthread_create(&pth, NULL, text3, (void *)&v); //一定要用&v因为结构体是值类型;
pthread_join(pth, NULL); return ;
}
结果如下:
每次传递的时候,都需要转化成void,接收之后,再由void转换成自己需要的类型!
最新文章
- mysql 赋予用户权限
- LeetCode Remove Element
- push
- unity3d学习笔记(十九)--ngui制作3d人物头顶的头像和血条
- HTTP缓存是如何实现
- android94 样式和主题
- (转)根据IP返回对应的位置信息
- computer专业术语总结
- Excel相关问题
- struts2.1.6教程四_2、ActionContext 、ValueStack 、Stack Context
- LINUX 硬盘分区及文件系统
- Laravel (5.5.33) 加载过程---instance方法(二)
- 问题:强制关闭Redis快照导致不能持久化
- Dilated Convolution
- oracle 分组函数执行分析
- 第八章| 2. MySQL数据库|数据操作| 权限管理
- 移动端自动化测试-Mac-IOS-Appium环境搭建
- booststrap select2的应用总结
- 面试1 SQL SERVER 查询第20行到30之间的数据
- windows安装filebeat服务报错
热门文章
- libsvm_readme[zz from github]
- Maven .m2\repository\jdk\tools\1.7 missing
- Tomcat7环境下面MySQL 56/Oracle数据库连接池的配置
- centos 7安装cppman
- Shader中ColorMask的使用
- [na]二层sw数据交换
- [na]ping提示&;各系统默认的TTL值
- Nginx配置优化参考
- angular的uiRouter服务学习(4)
- centos 7 min 编译安装php5.6+nginx1.7.5 笔记