码迷,mamicode.com
首页 > 编程语言 > 详细

linuxc多线程参数传递

时间:2014-08-08 12:47:25      阅读:289      评论:0      收藏:0      [点我收藏+]

标签:io   for   ar   linux   amp   ad   har   return   

#include <stdio.h>
#include <pthread.h>

struct stu  
{  
    int age;
    char *name;
    char *num;
};  

void thread1(void)
{
    int i;
    for(i=0;i<3;i++)
    {
        printf("This is a pthread1.\n");
        usleep(2);
    }
}

//传递多个参数
void thread2(void *data)
{
    struct stu *stu1=(struct stu*)data;
    int i;
    for(i=0;i<3;i++)
    {
        printf("This is a pthread2. age=%d,name=%s,num=%s\n",stu1->age,stu1->name,stu1->num);
        usleep(1);
    }
}

//传递一个参数
void thread3(void *data)
{
    //int *d=(int *)data;
    char *d=(char *)data;
    int i;
    for(i=0;i<3;i++)
    {
        printf("This is a pthread3. data=%s\n",d);
        usleep(1);
    }
}



int main(void)
{
    pthread_t id1,id2,id3;
    int i,ret;
    ret=pthread_create(&id1,NULL,(void *) thread1,NULL);
    if(ret!=0){
        printf ("Create pthread1 error!\n");
        exit (1);
    }
    struct stu student;
    student.age=10;
    student.name="yuguoqing";
    student.num="0415214736";
    ret=pthread_create(&id2,NULL,(void *) thread2,(void *)&student);
    if(ret!=0){
        printf ("Create pthread2 error!\n");
        exit (1);
    }

    //int data=123; 传递整数应为(void *)&data
    char *data;
    data="i am yu";       
    ret=pthread_create(&id3,NULL,(void *) thread3,(void *)data);
    if(ret!=0){
        printf ("Create pthread3 error!\n");
        exit (1);
    }
    sleep(1);

    return (0);
}

linuxc多线程参数传递,布布扣,bubuko.com

linuxc多线程参数传递

标签:io   for   ar   linux   amp   ad   har   return   

原文地址:http://blog.csdn.net/jiangheng0535/article/details/38435945

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!