【c】linux下互斥锁的使用

您所在的位置:网站首页 c语言互斥锁使用 【c】linux下互斥锁的使用

【c】linux下互斥锁的使用

#【c】linux下互斥锁的使用| 来源: 网络整理| 查看: 265

互斥锁mutex 一、mutex使用不使用mutex的多线程打印使用mutex的多线程打印 二、原理mutex的执行方式自旋锁

提示:以下是本篇文章正文内容,下面案例可供参考

一、mutex使用 不使用mutex的多线程打印 #include "stdio.h" #include "pthread.h" #define FILENAME "hello.txt" typedef struct { FILE *f; int id; } f_and_id; void *doit(void *data){ f_and_id data_val = *(f_and_id *)data; printf("...%d\n", data_val.id); int start = data_val.id; int end = start+1; FILE *fp = data_val.f; setbuf(fp, NULL); // 设置无缓冲 for(int i = (start*10);i int num_thread=5; pthread_t ths[5]; FILE *fp = fopen(FILENAME, "a+"); f_and_id fids[num_thread]; for(int i=0;i.f=fp, .id=i}; fids[i] = f; } for(int i=0;i printf("thread create failed\n"); return 1; } } for (int i=0; i FILE *f; int id; } f_and_id; void *doit(void *data){ if(pthread_mutex_lock(&mutex_lock)!=0){ fprintf(stdout, "lock error!\n"); } f_and_id data_val = *(f_and_id *)data; printf("...%d\n", data_val.id); int start = data_val.id; int end = start+1; FILE *fp = data_val.f; setbuf(fp, NULL); // 设置无缓冲 for(int i = (start*10);i int num_thread=5; pthread_t ths[5]; FILE *fp = fopen(FILENAME, "a+"); f_and_id fids[num_thread]; for(int i=0;i.f=fp, .id=i}; fids[i] = f; } for(int i=0;i printf("thread create failed\n"); return 1; } } for (int i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3