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

广州淘宝网站建设wordpress怎么做分页

广州淘宝网站建设,wordpress怎么做分页,宜昌市住房和城乡建设厅官方网站,零基础网站建设教学培训概述 条件变量的作用#xff1a; 条件变量和互斥量配合使用#xff0c;主要应用于生产者和消费者问题。 这种问题也是一种临界资源的问题#xff0c;但与互斥量一文中 写文件 这种资源不同。文件是一直存在的临界资源#xff0c;而生产者的资源不是一直存在…概述 条件变量的作用 条件变量和互斥量配合使用主要应用于生产者和消费者问题。 这种问题也是一种临界资源的问题但与互斥量一文中 写文件 这种资源不同。文件是一直存在的临界资源而生产者的资源不是一直存在资源的产生需要一些条件。条件变量实现了在等待生产者时消费者进入休眠状态提高运行效率。 条件变量使用方法 1、初始化互斥量、条件变量 2.1 生产者加锁互斥量-生产资源-发送信号给条件变量-解锁互斥量 2.2 消费者加锁互斥量-无资源时等待条件变量-消费资源-解锁互斥量 相关函数 1、初始化 //动态初始化 int pthread_cond_init(pthread_cond_t *restrict cond,const pthread_condattr_t *restrict attr); //静态初始化 pthread_cond_t cond PTHREAD_COND_INITIALIZER; 返回值成功返回0失败返回错误码 cond要初始化的条件变量 attr条件变量属性NULL代表默认属性 2、销毁  int pthread_cond_destroy(pthread_cond_t *cond); 返回值成功返回0失败返回错误码 cond要销毁的条件变量 3、等待资源 //等待临界资源,阻塞 int pthread_cond_wait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex); //等待临界资源,一段时间后退出阻塞 int pthread_cond_timedwait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex,const struct timespec *restrict abstime); cond等待哪一个条件变量的信号 mutex与条件变量搭配使用的互斥量 注意该函数在没有资源时会解锁互斥量并把本线程休眠。当接收到资源时会解除休眠并再次把互斥量上锁 4、发送信号  //单个发送信号,代表资源来了,所有线程竞争该资源 int pthread_cond_signal(pthread_cond_t *cond); //广播发送信号,代表资源来了 int pthread_cond_broadcast(pthread_cond_t *cond);cond要向哪一个条件变量发送信号 注意当 发送信号 比 等待资源 早时等待资源 是接收不到信号的这会导致信号丢失。这意味着当运行到 等待资源 时会进入阻塞直到第二次 发送信号 到来 生产者消费者示例代码 #include unistd.h #include stdio.h #include errno.h #include pthread.h #include stdlib.h pthread_mutex_t mutex;//互斥锁 pthread_cond_t cond;//条件变量 //资源 struct resource{char num;struct resource* pNext; }; struct resource Head; struct resource* pTail; //消费者 void* consumer(void* arg){struct resource* pResource NULL;while(1){//1.加锁互斥量pthread_mutex_lock(mutex);//2.无资源时等待条件变量,有资源时不断消耗资源while(Head.pNext NULL){//while的作用:防止信号为广播时产生惊群效应pthread_cond_wait(cond,mutex);}//3.消费资源pResource Head.pNext;Head.pNext Head.pNext-pNext;if(Head.pNext NULL){pTail Head;}printf(consumer:num %d\n,pResource-num);free(pResource);//4.解锁互斥量pthread_mutex_unlock(mutex);sleep(1);} } //生产者 void* producer(void* arg){struct resource* pNew NULL;int i 0;while(1){//1.加锁互斥量pthread_mutex_lock(mutex);//2.生产资源if((pNew malloc(sizeof(struct resource))) NULL){printf(malloc err\n);pthread_exit(NULL);}pNew-num i;pNew-pNext NULL;pTail-pNext pNew;pTail pNew;printf(producer:num %d\n,pNew-num);//3.发送信号给条件变量pthread_cond_signal(cond);//4.解锁互斥量pthread_mutex_unlock(mutex);sleep(1);} } int main(){pthread_t tid;Head.pNext NULL;pTail Head;//初始化互斥锁和条件变量pthread_mutex_init(mutex,NULL);pthread_cond_init(cond,NULL);//创建线程if(pthread_create(tid,NULL,producer,NULL) ! 0){perror(pthread_create);pthread_detach(tid);return -1;}if(pthread_create(tid,NULL,consumer,NULL) ! 0){perror(pthread_create);return -1;}while(1);//销毁互斥锁和条件变量pthread_mutex_destroy(mutex);pthread_cond_destroy(cond);return 0; }
http://www.hkea.cn/news/14489584/

相关文章:

  • 北海做网站有哪家好免费ppt模板软件哪个好
  • 营销网站认识用响应式做旧书网站
  • 如何修改网站底部东营网站制作
  • 怎么建设只要注册就赚钱的网站wordpress4.9下载
  • 黄岛网站建设服务公司济南优化seo网站建设
  • 宜昌网站建设扁平化设计风格的网站
  • 网站 的空间做市场调查的网站免费
  • 网站建设人力资源人员配置傻瓜式网页制作工具
  • 外贸网站建设公司流程图wordpress 多个置顶
  • 没有公司可以做网站吗石家庄网站建设行业公司
  • 商河网站建设官方网站怎么备案
  • 郑州网站设计哪家公司好梓潼网站建设
  • hostinger建站wordpress织梦网站更新Html
  • 做一下网站收购废钢晋中住房保障和城乡建设局网站
  • 超简单网站网站优化平台有哪些
  • 女和女做网站工作室主题网站模板
  • 网站后期维护方案手机销售网站怎么做
  • 简单的网站建设公司实时热搜
  • 怎样使用自己的电脑做网站wordpress 网上商城
  • 简述电子商务网站的建设流程图dw做的网站如何上传
  • wordpress 站点个人网站如何做即时支付
  • soho外贸网站建设扬州百度关键词优化
  • 虚拟主机网站建设过程网络推广优化服务
  • 建设酒店网站ppt模板下载中国龙城室内设计联盟
  • 网站制作论文文献综述网站建设及推广优化
  • 专题页网站做班级网站的实训报告
  • 最全的数据网站注册查询官方网站
  • 昆山建设招投标网站wordpress误删插件
  • 网站建设工作室 怎么样山西省住房建设厅网站首页
  • 网站模板双语360网站建设基本情况