c語言線程中傳輸多個參數

來源:互聯網
上載者:User

標籤:info   null   typedef   amp   name   char   eof   一個   type   

前言:c語言中建立一條線程,但是需要傳送多個參數給線程的話我們自然會想到通過傳送數組或者結構體來實現,下面我們來看看如何在建立線程的時候傳送結構體和數組。

 1 #include <stdio.h> 2 #include <pthread.h> 3 #include <stdlib.h> 4 #include <string.h> 5  6 typedef struct Student 7 { 8    int num; 9    char name[10];10 }info;11 12 void *message(void *arg)13 {14   info *p = (info*)arg;15   printf("num:%d name:%s\n",p->num,p->name);16 17 }18 19 void *read_routine1(void *arg)20 {    int *fd;21     fd = (int*)arg;22     // fd[0] = ((int *)arg)[0];23     // fd[1] = ((int *)arg)[1];24     printf("fd[0]:%d  fd[1]:%d\n",fd[0],fd[1]);25 }26 27 28 int main(int argc,char *argv[])29 {    30     info *st = (info*)malloc(sizeof(info));31     st->num = 10;32     strcpy(st->name,"xiaoming");33     int fd[2];34     fd[0] = 12;35     fd[1] = 32;36     pthread_t tid1,tid2;37     /*建立兩條線程,第一條傳送的是一個結構體,第二條是數組*/38     pthread_create(&tid2,NULL,message,(void*)st);39     pthread_create(&tid1,NULL,read_routine1,(void*)fd);40     while(1);41     free(st);42     return 0;43 }

 經測試,這種方法是可行的。

c語言線程中傳輸多個參數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.