如何给线程函数 beginthread 和 pthread_create 传递参数
来源:互联网 发布:字符数组初始化 编辑:程序博客网 时间:2024/04/26 12:20
1. 传递单个参数:直接传递指向参数的指针。
/*----------------------- beginthread.c ----------------------------*/#include <process.h> void doubleNum(void* arg) {
int *arg=(int*)arg;
*arg=(*arg)*2;
} void main() { int arg = 0;
_beginthread(doubleNum,0,(void*)&arg); }
/*----------------------- pthread_create.c ----------------------------*/#include <pthread.h>void doubleNum(void* arg) {int *arg=(int*)arg;*arg=(*arg)*2;} void main() { int arg = 0;pthread_t thread;pthread_create(&thread, 0, doubleNum, (void*)&arg);pthread_join(thread, NULL);}
2. 传递多个参数:定义一个包含所有参数的结构体,传递指向结构体的指针。
/*----------------------- StructAndFunc.h ----------------------------*/
#include <stdio.h>struct threadparam{int *arg1;char[5] arg2;}void doubleNum(void* arg) {int *arg1=(threadparam*)arg->arg1;char *arg2=(threadparam*)arg->arg2;printf("integer: %dchar array: %s \n", *arg1, arg2);
}
/*----------------------- beginthread.c ----------------------------*/#include <process.h> #include <StructAndFunc.h>
void main() { int integer= 5;char[5] array={a,b,c,d,e};threadparam* param=new threadparam();param->arg1=&interger;
param->arg2=array;
HANDLE m_hThread = (HANDLE)_beginthread(doubleNum,0,(void*)threadparam);}/*----------------------- pthread_create.c ----------------------------*/#include <pthread.h>#include <StructAndFunc.h>void main() { int integer= 5;char[5] array={a,b,c,d,e};threadparam* param=new threadparam();param->arg1=&interger;
param->arg2=array;pthread_t thread;pthread_create(&thread, 0, doubleNum, (void*)param);pthread_join(thread, NULL);
}ps,以上代码未进行测试,可能会存在一些语法小错误。
- 如何给线程函数 beginthread 和 pthread_create 传递参数
- pthread_create()给创建的线程传递参数
- CreateThread给线程函数传递的参数
- pthread_create函数的详细讲解(包括向线程函数传递参数详解)
- pthread_create函数的详细讲解(包括向线程函数传递参数详解)
- pthread_create函数的详细讲解(包括向线程函数传递参数详解)
- pthread_create函数的详细讲解(包括向线程函数传递参数详解)
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数 .
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- pthread_create如何传递多个参数
- Codeforces Round #138 (Div. 1)
- 辗转相除法
- 关于升级到8G内存的那点事,8G内存够用?明确告诉你为何32位win7为何要升级到8G!
- VARIANT类型的用法
- python: 从远程服务器下载日志程序
- 如何给线程函数 beginthread 和 pthread_create 传递参数
- 关于二维码分块上色(彩色二维码)的算法研究
- 使用CSS3创建文字颜色渐变(CSS3 Text Gradient)
- hdu 4288(lower_bound&&upper_bound的运用)
- Java核心类库——IO原理和用法
- 餐桌上的“爱心菜”
- HDU 1555
- Android WebView相关属性
- DOS删除CVS/SVN目录文件命令