linux下C语言多线程编程实例.doc

linux下C语言多线程编程实例.doc

ID:62033758

大小:28.50 KB

页数:5页

时间:2021-04-15

linux下C语言多线程编程实例.doc_第1页
linux下C语言多线程编程实例.doc_第2页
linux下C语言多线程编程实例.doc_第3页
linux下C语言多线程编程实例.doc_第4页
linux下C语言多线程编程实例.doc_第5页
资源描述:

《linux下C语言多线程编程实例.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、linux下C语言多线程编程实例2007年11月29日 星期四10:39学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵.ﻫ下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。ﻫﻫ下面是我们的代码:/*thread_example。c: c multiplethreadprogramming inlinux *author:falcon*E—mail :tunzhj03@st.lzu.edu.cn */#include<pthread。h>#include 〈

2、stdio.h〉#include<sys/time。h〉#include〈string.h〉#defineMAX10pthread_t thread[2];pthread_mutex_tmut;int number=0, i;void*thread1(){ printf ("thread1: I'mthread1\n"); for(i= 0;i <MAX;i++) {     printf(”thread1:number=%d",number);      pthread_mutex_lock(&mut);    number++;  pthread_mutex_unlo

3、ck(&mut);  sleep(2); }  printf("thread1:主函数在等我完成任务吗?");  pthread_exit(NULL);}void*thread2(){   printf(”thread2:I’m thread2\n");  for (i= 0;i< MAX;i++)  {    printf(”thread2 :number=%d",number);   pthread_mutex_lock(&mut);     number++; pthread_mutex_unlock(&mut);      sleep(3);   }  pri

4、ntf(”thread2:主函数在等我完成任务吗?n"); pthread_exit(NULL);}voidthread_create(void){int temp;    memset(&thread,0,sizeof(thread));  //comment1 /*创建线程*/  if((temp= pthread_create(&thread[0],NULL,thread1, NULL)) !=0) //comment2    printf("线程1创建失败!n");else     printf("线程1被创建n");    if((temp=pthread_c

5、reate(&thread[1],NULL, thread2,NULL)) !=0)//comment3   printf("线程2创建失败"); else      printf("线程2被创建n”);}voidthread_wait(void){    /*等待线程结束*/  if(thread[0]!=0){    //comment4      pthread_join(thread[0],NULL);    printf("线程1已经结束n");} if(thread[1] !=0){   //comment5      pthread_join(thread[

6、1],NULL);      printf("线程2已经结束”);  }}intmain(){   /*用默认属性初始化互斥锁*/   pthread_mutex_init(&mut,NULL);printf("我是主函数哦,我正在创建线程,呵呵n");   thread_create();printf(”我是主函数哦,我正在等待线程完成任务阿,呵呵”); thread_wait(); return0;}ﻫ下面我们先来编译、执行一下ﻫﻫ引文: ﻫfalcon@falcon:~/program/c/code/ftp$ gcc-lpthread —othread_exa

7、mplethread_example.cﻫfalcon@falcon:~/program/c/code/ftp$ 。/thread_example我是主函数哦,我正在创建线程,呵呵线程1被创建ﻫ线程2被创建我是主函数哦,我正在等待线程完成任务阿,呵呵thread1:I'm thread 1ﻫthread1 : number= 0thread2:I’m thread2ﻫthread2:number =1ﻫthread1:number =2ﻫthread2:number=3thread1:number =4

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。