当前位置: 首页 > news >正文

学做ps的软件的网站推广app的单子都在哪里接的

学做ps的软件的网站,推广app的单子都在哪里接的,wordpress更多的模板,wordpress 文章8小时目录 第7关:生产者消费者问题实践 第1关:生产者消费者问题实践 1、在主线程中初始化锁为解锁状态 2、访问对象时的加锁操作与解锁操作 3、(生产和消费进程操作后)信号量操作实现进程同步 4、先等待(生产还是消费…

目录

第7关:生产者消费者问题实践

第1关:生产者消费者问题实践

1、在主线程中初始化锁为解锁状态

2、访问对象时的加锁操作与解锁操作

3、(生产和消费进程操作后)信号量操作实现进程同步

4、先等待(生产还是消费)需要的条件

5、生产者函数

6、消费者函数

第2关:进程互斥和同步

1、注意这以下4个的关系:

2、一般情况哪两个函数的参数一起配套使用

3、在第一次用完这些函数之后记得写上互斥锁,然后再调用这一类函数时之前要释放互斥锁。

4、儿子的消费进程

5、父亲的生产进程

6、女儿的消费进程


第7关:生产者消费者问题实践

第1关:生产者消费者问题实践

1、在主线程中初始化锁为解锁状态
  • pthread_mutex_t mutex;
  • pthread_mutex_init(&mutex, NULL);
2、访问对象时的加锁操作与解锁操作
  • 加锁 pthread_mutex_lock(&mutex);
  • 释放锁 pthread_mutex_unlock(&mutex);
3、(生产和消费进程操作后)信号量操作实现进程同步
  • 信号量加1操作:int sem_post(sem_t *sem);
  • 销毁信号量:int sem_destroy(sem_t *sem);
4、先等待(生产还是消费)需要的条件
  • sem_wait(&empty);
  • sem_wait(&full);

5、生产者函数
void *Producer()
{int nextp = 0;int i = 0;for(; i < 10; ++i){  int time = rand() % 10 + 1;usleep(time*100000); sem_wait(&empty);   //等待缓冲区有空位置,为空pthread_mutex_lock(&mutex);nextp = nextp + 1;buffer[in] = nextp;printf("Produce one message:%d\n", nextp);fflush(stdout);//printf后请一定调用这句刷新输出缓存in = (in + 1) % SIZE;pthread_mutex_unlock(&mutex);         //互斥锁解锁sem_post(&full);}
}
6、消费者函数

void *Consumer()
{//请补充消费者线程函数代码int nextc = 0;int i=0;for(;i<10;i++){sem_wait(&full);     //等待缓冲区有东西,不为空pthread_mutex_lock(&mutex); //加锁nextc= buffer[out];printf("Consume one message:%d\n", nextc);fflush(stdout);//printf后请一定调用这句刷新输出缓存out = (out + 1) % SIZE;pthread_mutex_unlock(&mutex);         //互斥锁解锁sem_post(&empty);
}

第2关:进程互斥和同步

(这个就比较简单的,仿照着写,读懂上一题就会写了)

1、注意这以下4个的关系:
  •  sem_wait(&empty); (意思是只要有空位置开始生产)
  • sem_post(&empty);(消费完就要提示空的位置+1)
  • sem_wait(&full);  (意思是只要有生产的东西开始消费)
  • sem_post(&full);(生产完就要提示已经生产的东西+1)
2、一般情况哪两个函数的参数一起配套使用
  • 在生产进程中:先判断是否有空位置(sem_wait(&empty);)最后在生产结束之后告诉生产的东西+1(sem_post(&full);)
  • 在消费的进程中:先判断是否有已经生产好的东西(sem_wait(&full);)最后在消费完之后提示空的位置+1(sem_post(&empty);)
3、在第一次用完这些函数之后记得写上互斥锁,然后再调用这一类函数时之前要释放互斥锁。
4、儿子的消费进程

(注意这里的消费的东西是:"&orange")

void *Son()
{//请添加儿子线程的函数代码while(1){int time = rand() % 10 + 1;          //随机使程序睡眠0点几秒usleep(time * 100000);        sem_wait(&orange); pthread_mutex_lock(&mutex);printf("儿子取了一个桔子\n") ;fflush(stdout);pthread_mutex_unlock(&mutex);         //互斥锁解锁sem_post(&empty);}
}
5、父亲的生产进程

(生产的是苹果:"&apple" 和 "&orange")

void *Dad()
{int nextp = 0;int i = 0;for(i = 0; i < 10; ++i){int time = rand() % 10 + 1;          //随机使程序睡眠0点几秒usleep(time*100000);        sem_wait(&empty); pthread_mutex_lock(&mutex);if(nextp == 0){printf("爸爸放入了一个苹果\n");}else{printf("爸爸放入了一个桔子\n");}fflush(stdout);pthread_mutex_unlock(&mutex);         //互斥锁解锁if(nextp == 0){sem_post(&apple);}else{sem_post(&orange);} nextp = 1 - nextp; }
}
6、女儿的消费进程

(注意这里的消费的东西是:"&apple")

void *Daughter()
{while(1){int time = rand() % 10 + 1;          //随机使程序睡眠0点几秒usleep(time * 100000);        sem_wait(&apple); pthread_mutex_lock(&mutex);printf("女儿取了一个苹果\n") ;fflush(stdout);pthread_mutex_unlock(&mutex);         //互斥锁解锁sem_post(&empty);}
}
http://www.tj-hxxt.cn/news/49739.html

相关文章:

  • 站外做deal的网站黄山seo公司
  • 企业 网站设计seo排名快速优化
  • 成都网站制作公司报价品牌推广专员
  • 建立网站费用较低搜索app下载
  • 重庆大渝网优化培训学校
  • 做企业网站一般多少钱疫情优化调整
  • 哪家公司做门户网站竞价推广代运营公司
  • 做宣传的视频网站有哪些怎么用网络推广业务
  • 宣传网站怎么做深圳网络推广团队
  • 宜昌网站制作关键词seo排名怎么选
  • 做网站要不要用jsp网站建设哪家好公司
  • 做h5好点的网站昆山网站建设
  • 用现成的网站模板只套内容就可以有这样的吗百度推广后台登陆入口
  • 使用动易模版制作网站今日国内重大新闻
  • 贵州建设厅网站报名系统香蕉和忘忧草对焦虑的影响
  • 长宁建设机械网站今天实时热搜榜排名
  • wordpress找不到页面内容编辑郑州seo优化外包顾问阿亮
  • 企业招聘网站模板站长工具seo综合查询怎么用
  • 徐城乡建设局网站百度官方客服平台
  • 独立商城系统网站建设新闻发布的网站
  • 网站群建设公司seo排名培训公司
  • 电脑网站打不开是什么原因造成的最佳磁力搜索引擎
  • 一品威客网站是用什么平台做的微信群推广
  • 做百度网站每年的费用多少最好的网站推广软件
  • 网站支付界面怎么做常州百度seo排名
  • 上海信息科技有限公司软件网站开发免费自助建站平台
  • 商城网站开发网国产系统2345
  • 哈尔滨网站建设教程网站模板下载
  • 建材外贸网站建设加强服务保障满足群众急需ruu7
  • 郑州专业做网站企业凡科建站