c语言多进程(linux简单的C语言程序,多进程,为什么存在死循环的时候不打印字符死循环明明在打印语句的后面呀)

2024-07-02 18:24:55 28

c语言多进程(linux简单的C语言程序,多进程,为什么存在死循环的时候不打印字符死循环明明在打印语句的后面呀)

本文目录

linux简单的C语言程序,多进程,为什么存在死循环的时候不打印字符死循环明明在打印语句的后面呀

流来不及刷新,不是你打印就立刻出现再终端的,它需要一个刷新过程,而你的死循环让它没有时间刷新

c语言多进程问题

在开子进程之前分配了空间(应该指的malloc()函数吧),用p指向了它,那么在子进程里调用 free() 会将子进程中的那一片空间释放掉。 但父进程中的这片空间要在父进程里调用 free() 函数将其释放。 否则会造成内在泄漏。 而且不能在父子两个进程的公共区域调用 free() 函数,如果在公共区域内调用会造成 "double free" 这个运行时错误

在linux下用c语言实现用多进程同步方法演示“生产者-消费者”问题

这个问题需要的知识主要包括:

1 多进程间进行通信;

2 使用同步信号量(semaphore)和互斥信号量(mutex)进行数据保护。

参考代码如下,可以参照注释辅助理解:

#include 《stdio.h》#include 《stdlib.h》#include 《unistd.h》#include 《pthread.h》#include 《semaphore.h》#define N 2   // 消费者或者生产者的数目#define M 10 // 缓冲数目int in = 0;   // 生产者放置产品的位置int out = 0; // 消费者取产品的位置int buff = {0}; // 缓冲初始化为0, 开始时没有产品sem_t empty_sem; // 同步信号量, 当满了时阻止生产者放产品sem_t full_sem;   // 同步信号量, 当没产品时阻止消费者消费pthread_mutex_t mutex; // 互斥信号量, 一次只有一个线程访问缓冲int product_id = 0;   //生产者idint prochase_id = 0; //消费者id/* 打印缓冲情况 */void print(){int i;for(i = 0; i 《 M; i++)   printf("%d ", buff);printf("\n");}/* 生产者方法 */ void *product(){int id = ++product_id;while(1){   // 用sleep的数量可以调节生产和消费的速度,便于观察   sleep(1);   //sleep(1);     sem_wait(&empty_sem);   pthread_mutex_lock(&mutex);     in = in % M;   printf("product%d in %d. like: \t", id, in);     buff = 1;     print();     ++in;     pthread_mutex_unlock(&mutex);   sem_post(&full_sem);  }}/* 消费者方法 */void *prochase(){int id = ++prochase_id;while(1){   // 用sleep的数量可以调节生产和消费的速度,便于观察   sleep(1);//sleep(1);     sem_wait(&full_sem);   pthread_mutex_lock(&mutex);     out = out % M;   printf("prochase%d in %d. like: \t", id, out);     buff = 0;   print();   ++out;     pthread_mutex_unlock(&mutex);   sem_post(&empty_sem);}}int main(){pthread_t id1;pthread_t id2;int i;int ret;// 初始化同步信号量int ini1 = sem_init(&empty_sem, 0, M); int ini2 = sem_init(&full_sem, 0, 0);  if(ini1 && ini2 != 0){   printf("sem init failed \n");   exit(1);} //初始化互斥信号量 int ini3 = pthread_mutex_init(&mutex, NULL);if(ini3 != 0){   printf("mutex init failed \n");   exit(1);} // 创建N个生产者线程for(i = 0; i 《 N; i++){   ret, NULL, product, (void *)(&i));   if(ret != 0)   {    printf("product%d creation failed \n", i);    exit(1);   }}//创建N个消费者线程for(i = 0; i 《 N; i++){   ret, NULL, prochase, NULL);   if(ret != 0)   {    printf("prochase%d creation failed \n", i);    exit(1);   }}//销毁线程for(i = 0; i 《 N; i++){   pthread_join(id1,NULL);   pthread_join(id2,NULL);}exit(0); }

在Linux下编译的时候,要在编译命令中加入选项-lpthread以包含多线程支持。比如存储的C文件为demo.c,要生成的可执行文件为demo。可以使用命令:

gcc demo.c -o demo -lpthread

程序中为便于观察,使用了sleep(1);来暂停运行,所以查看输出的时候可以看到,输出是每秒打印一次的。

c语言多进程(linux简单的C语言程序,多进程,为什么存在死循环的时候不打印字符死循环明明在打印语句的后面呀)

本文编辑:admin

更多文章:


5 0 1固件下载(91下载的ios5.0.1固件如何升级安装到iphone4呀,iphone 的版本是4.3.5)

5 0 1固件下载(91下载的ios5.0.1固件如何升级安装到iphone4呀,iphone 的版本是4.3.5)

本文目录91下载的ios5.0.1固件如何升级安装到iphone4呀,iphone 的版本是4.3.5ipad2 WIFI 32G 4.3.5 如何用固件升级到5.0.1 现在官网已经出了5.1,下载5.0.1的估计要如何升级91下载的io

2024年5月5日 06:45

qq餐厅装修(QQ餐厅怎样装修最好)

qq餐厅装修(QQ餐厅怎样装修最好)

本文目录QQ餐厅怎样装修最好QQ餐厅装修等级怎么升级QQ餐厅装修档次有什么用QQ餐厅怎样装修很好看QQ餐厅怎样进行多层装修qq餐厅怎么装修qq餐厅24级怎么装修怎么装修qq餐厅qq餐厅装修里面想换桌椅了,原来的不想要了怎么销毁啊qq餐厅装修

2024年6月8日 15:53

如何盖印图层?ps中盖印图层的快捷键是

如何盖印图层?ps中盖印图层的快捷键是

本文目录如何盖印图层ps中盖印图层的快捷键是PS中盖印图层是什么意思,谢谢ps盖印图层是什么意思 看完就明白了ps盖印图层的快捷键ps里面盖印图层的快捷键是什么ps中如何盖印PS如何盖印图层PS怎么制作盖印图层教程如何盖印图层一、什么是盖印

2024年5月5日 14:08

照片处理在线(如何利用美图秀秀在线批量处理图片大小)

照片处理在线(如何利用美图秀秀在线批量处理图片大小)

这篇文章给大家聊聊关于照片处理在线,以及如何利用美图秀秀在线批量处理图片大小对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录如何利用美图秀秀在线批量处理图片大小有哪些网站支持在线处理图片的#神奇工具#黑白老照片在线秒变彩色修复

2024年7月3日 18:57

win10最新版本是多少(win10用版本微信最新版本是多少)

win10最新版本是多少(win10用版本微信最新版本是多少)

大家好,今天小编来为大家解答以下的问题,关于win10最新版本是多少,win10用版本微信最新版本是多少这个很多人还不知道,现在让我们一起来看看吧!本文目录win10用版本微信最新版本是多少win10现在稳定吗win10教育版更新最新版本是

2024年5月20日 01:59

求汉乡TXT精校版下载地址?网页版小说巧转TXT电子书

求汉乡TXT精校版下载地址?网页版小说巧转TXT电子书

本文目录求汉乡TXT精校版下载地址网页版小说巧转TXT电子书有没有像书包网一样的txt下载网站,书比较多,全部免费,无需注册的,而且手机就可以下的求小说txt下载网站谁能推荐几个比较好的下载txt小说的网站手机上什么软件可以『免费』下载tx

2024年7月24日 07:23

win7摄像头驱动怎么安装(win7摄像头安装方法)

win7摄像头驱动怎么安装(win7摄像头安装方法)

大家好,关于win7摄像头驱动怎么安装很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于win7摄像头安装方法的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文

2024年6月27日 03:55

如何评价判断抖音SEO优化与常规SEO优化的相同与不同?抖音seo优化

如何评价判断抖音SEO优化与常规SEO优化的相同与不同?抖音seo优化

大家好,如果您还对抖音seo不太了解,没有关系,今天就由本站为大家分享抖音seo的知识,包括如何评价判断抖音SEO优化与常规SEO优化的相同与不同的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录如何评价判断抖音SE

2024年6月28日 04:19

qq飞车体验服最新版本下载(苹果怎么下载qq飞车体验服)

qq飞车体验服最新版本下载(苹果怎么下载qq飞车体验服)

今天给各位分享苹果怎么下载qq飞车体验服的知识,其中也会对苹果怎么下载qq飞车体验服进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录苹果怎么下载qq飞车体验服QQ飞车体验服怎么下载QQ飞车体验服怎么下载啊qq飞

2024年8月26日 14:55

淘宝网怎么加好友(淘宝怎么搜索用户加好友)

淘宝网怎么加好友(淘宝怎么搜索用户加好友)

本文目录淘宝怎么搜索用户加好友淘宝怎么样添加好友淘宝怎么加好友淘宝如何通过淘宝账号添加好友我想问一下淘宝旺旺上面怎么加别人为好友淘宝怎么添加好友 淘宝添加好友的教程淘宝怎么搜索用户加好友打开淘宝APP,登录后,点击淘宝主页面下方的我的淘宝。

2024年6月28日 10:52

爱词霸在线词典官网(爱词霸的网站是什么)

爱词霸在线词典官网(爱词霸的网站是什么)

各位老铁们好,相信很多人对爱词霸在线词典官网都不是特别的了解,因此呢,今天就来为大家分享下关于爱词霸在线词典官网以及爱词霸的网站是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录爱词霸的网站是什么我想找一种软

2024年7月2日 11:28

小米9参数配置?小米9怎么样

小米9参数配置?小米9怎么样

大家好,如果您还对小米9不太了解,没有关系,今天就由本站为大家分享小米9的知识,包括小米9参数配置的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录小米9参数配置小米9怎么样小米9发布时间小米9参数配置详细小米9什么

2024年7月8日 06:38

防火墙软件有哪些(现在用什么杀毒软件和防火墙最好呢)

防火墙软件有哪些(现在用什么杀毒软件和防火墙最好呢)

大家好,如果您还对防火墙软件有哪些不太了解,没有关系,今天就由本站为大家分享防火墙软件有哪些的知识,包括现在用什么杀毒软件和防火墙最好呢的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录现在用什么杀毒软件和防火墙最好

2024年4月15日 03:16

手机ppt软件(手机上可以做课件的软件)

手机ppt软件(手机上可以做课件的软件)

各位老铁们,大家好,今天由我来为大家分享手机ppt软件,以及手机上可以做课件的软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录手机上可以做课件的

2024年8月12日 09:45

百度免费安装(百度怎样下载安装)

百度免费安装(百度怎样下载安装)

本篇文章给大家谈谈百度免费安装,以及百度怎样下载安装对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录百度怎样下载安装手机百度下载安装下载百度

2024年6月28日 07:19

小鸡模拟器ios(ios苹果小鸡模拟器除了psp以外都闪退)

小鸡模拟器ios(ios苹果小鸡模拟器除了psp以外都闪退)

各位老铁们好,相信很多人对小鸡模拟器ios都不是特别的了解,因此呢,今天就来为大家分享下关于小鸡模拟器ios以及ios苹果小鸡模拟器除了psp以外都闪退的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录ios苹果小

2024年6月22日 05:22

会声会影x7下载(为什么Win764位系统装不了会声会影X7)

会声会影x7下载(为什么Win764位系统装不了会声会影X7)

大家好,关于会声会影x7下载很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于为什么Win764位系统装不了会声会影X7的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所

2024年5月30日 06:37

章鱼输入法怎么开启金币模式?章鱼输入法怎么用

章鱼输入法怎么开启金币模式?章鱼输入法怎么用

大家好,今天小编来为大家解答以下的问题,关于章鱼输入法,章鱼输入法怎么开启金币模式这个很多人还不知道,现在让我们一起来看看吧!本文目录章鱼输入法怎么开启金币模式章鱼输入法怎么用章鱼输入法怎么打反字章鱼输入法怎么样 章鱼输入法好用吗章鱼输入法

2024年7月13日 09:05

自由驾驶模拟器游戏(模拟真实开车的游戏)

自由驾驶模拟器游戏(模拟真实开车的游戏)

“自由驾驶模拟器游戏”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看自由驾驶模拟器游戏(模拟真实开车的游戏)!本文目录模拟真实开车的游戏有什么模拟汽车的手游非常真实的建议推荐一下下载方式,谢谢模拟驾驶类游戏有哪些世界巴士驾驶

2024年4月11日 11:51

飙酷车神2下载(飙酷车神2占多大空间)

飙酷车神2下载(飙酷车神2占多大空间)

大家好,今天小编来为大家解答以下的问题,关于飙酷车神2下载,飙酷车神2占多大空间这个很多人还不知道,现在让我们一起来看看吧!本文目录飙酷车神2占多大空间手机怎么下载飙酷车神2飙酷车神2怎么免费下载飙酷车神2怎么免费下载飙酷车神2游戏本体多少

2024年7月1日 19:28

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1730
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1154
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1151
标签列表

热门搜索