源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

linux c多线程编程实例代码

  • 时间:2022-02-14 08:13 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:linux c多线程编程实例代码
直接看代码吧,代码里有注释
[u]复制代码[/u] 代码如下:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <pthread.h> #include <time.h> #define MAX 3 int number =0; pthread_t id[2]; pthread_mutex_t mut; //初始化静态互斥锁 void thread1(void) {     int i;     printf("Hello,I am pthread1!\n");     for (i=0; i<MAX; i++)     {         pthread_mutex_lock(&mut);  //此处上锁,保证number的唯一性             number ++;               printf("Thread1:number = %d\n",number);         pthread_mutex_unlock(&mut);         sleep(1);  //linux c下 sleep(minute),里面变量单位是分钟     }     pthread_exit(NULL); //线程通过执行此函数,终止执行。返回是一个空指针类型 } void thread2(void) {     int j;     printf("Hello,I'm pthread2\n");     for(j=0; j<MAX; j++)     {         pthread_mutex_lock(&mut);              number ++;              printf("Thread2:number = %d\n",number);         pthread_mutex_unlock(&mut);         sleep(1);     }     pthread_exit(NULL); } void thread_create(void) {     int temp;     memset(&id, 0, sizeof(id)); if(temp = pthread_create(&id[0], NULL, (void *)thread1, NULL)!= 0)                           //参数:线程标识符指针 线程属性  线程运行函数起始地址  运行函数属性                           //创建成功返回 0         printf("Thread 1 fail to create!\n");     else         printf("Thread 1 created\n");     if(temp = pthread_create(&id[1], NULL, (void *)thread2, NULL)!= 0)         printf("Thread 2 fail to create!\n");     else         printf("Thread 2 created!\n");  }   void thread_wait() {     if(id[0] != 0)     {         pthread_join(id[0], NULL); //等待线程结束,使用此函数对创建的线程资源回收         printf("Thread1 completed!\n");     }     if(id[1] != 0)     {         pthread_join(id[1], NULL);         printf("Thread2 completed!\n");     } } int main(void) { int i,ret1,ret2; pthread_mutex_init(&mut, NULL); //动态互斥锁     printf("Main fuction,creating thread...\n");     thread_create();     printf("Main fuction, waiting for the pthread end!\n");     thread_wait();     return (0); }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部