【C】——如何用线程进行参数的传递

#include<pthread.h>
 2 #include<stdio.h>
 3
 4 struct val{
 5     int num1;
 6     int num2;
 7 };
 8
 9 //send a int to arg
10 void *text(void *arg)
11 {
12     int *p = (int *)arg;
13     printf("arg is %d\n",*p);
14     pthread_exit(NULL);
15 }
16
17 //send char to arg
18 void *text2(void *arg)
19 {
20     char *d = (char *)arg;
21     printf("arg is %s\n",arg);
22     pthread_exit(NULL);
23 }
24
25 //send a struct to arg
26 void *text3(void *arg)
27 {
28     struct val *v = (struct val *)arg;//传入的结构体指针强制转为实例化结构体*v
29     printf("arg is v.num1:%d,v.num2:%d\n",v->num1,v->num2);
30     pthread_exit(NULL);
31 }
32
33 int main()
34 {
35     pthread_t pth;
36     char val[10] = "i am arg.";
37     int arry = 10;
38     pthread_create(&pth, NULL, text,(void *)&arry);
39     pthread_join(pth, NULL);
40
41     pthread_create(&pth, NULL, text2, (void *)val);
42     pthread_join(pth, NULL);
43
44     struct val v;
45     v.num1 = 0;
46     v.num2 = 1;
47     pthread_create(&pth, NULL, text3, (void *)&v); //一定要用&v因为结构体是值类型;
48     pthread_join(pth, NULL);
49
50     return 0;
51 }
时间: 2024-10-24 12:11:19

【C】——如何用线程进行参数的传递的相关文章

web页面中参数的传递方法

在web页面中参数的传递方法多样,主要有以下几种: Viewstate,Querystring,Session, Application,Cookie,Cache. Viewstate: 特点:服务启启动的各种控件的视图状态:包括控件的所有属性值:Enableviewstate可以启用和禁用视图状态:        优点:防止新产生一个页面实例后,丢失前一个页面的状态信息: 例如:在用户登录注册验证过程中,无须使用导致服务器往返行程的代码,我们只需要在客户端进行验证就可以了.另外有些控件的初始化

c++多线程参数的传递

#include <iostream> #include <pthread.h> //多线程相关操作头文件,可移植众多平台 using namespace std; struct mypara { int para1; //参数1 char *para2; //参数2 pthread_t wait; }; void* thread1( void* args ) //本函数演示的是数据的传出 { mypara *my = (mypara *)args; srand(unsigned(

在C#中主线程和子线程如何实现互相传递数据

在C#中主线程和子线程如何实现互相传递数据 老帅 在C#中创建线程Thread时,可以有多种方法,而主线程和子线程之间又如何实现互相传递数据,每种创建方法传递参数的效果是不同的,逐一看一下:  一.不带参数创建Thread 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 using System;  using System.Collections.Generic;  using System.Text;  using Sy

JMeter 不同线程组间变量传递

JMeter元件都是有作用域的,而变量大多使用正则表达式提取器,要想在不通过线程组件使用变量参数,则需要设置全部变量 JMeter函数助手就提供了一个函数用于设置全局变量属性,实现的功能类似于在用户自定义变量中添加的变量. __setProperty:用于动态设置JMeter属性 Return Original Value of property(default false)?:是否返回函数结果,默认为否,如果填入true,则返回 例如:正则表达式提取变量值 利用BeanShell PostPr

js函数中参数的传递

先看一道JS的笔试题: var setObj=function(o){ o.name="xiaoming"; o={}; o.name="xiaohong"; } var p={name:"xixi",age:24}; setObj(p); console.log(p); 答案是{name:xiaoming,age24}: 在JavaScript中函数参数默认为引用类型. 在阅读本章节之前建议参阅一下两章节:1.值类型可以参阅javascript

[ jquery 过滤器nextAll(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后面的所有同级元素,此方法参数只能传递表达式,无法传递其他类型 可以使用此方法向里面传递表达式的方法实现和jqueryObj.next()相同的效果 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta

[ jquery 过滤器next(expr) ] 此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型

此方法用于在选择器的基础之上搜索被选元素的后一个同级元素,此方法参数只能传递表达式,无法传递其他类型: 实例: <html lang='zh-cn'> <head> <title>Insert you title</title> <meta http-equiv='description' content='this is my page'> <meta http-equiv='keywords' content='keyword1,key

JavaScript中参数的传递

变量类型 了解参数的传递之前我们来复习下变量的类型,JavaScript中的变量有5个基本数据类型(Undefined, Null, Boolean, Number, String)和引用数据类型(Object,Function,Array等). 基本类型和引用类型的区别 // 声明一个String类型的变量 var str = "string"; // 声明一个引用类型的变量,并添加属性 var person = new Object(); person.name = "J

vsnprintf的使用以及c可变参数的传递机制

int vsnprintf (char * s, size_t n, const char * format, va_list arg ); cplusplus.com给出的解释是:Write formatted data from variable argument list to sized buffer 意思是把格式化的字符串format的最多n位字符写入缓冲区s中,format的参数列表为arg 其返回一个整型数ret,当且仅当ret非负,且ret小于n,表示函数运行成功,把ret个字符