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

wordpress多本小说站出售全国中高风险地区最新名单

wordpress多本小说站出售,全国中高风险地区最新名单,如何制作微信网页,抖音代运营服务协议(1) 什么是条件变量实现线程同步?   假如我们的程序中有两个线程#xff0c;一个是生产者线程#xff0c;另一个是消费者线程#xff0c;生产者线程每隔一段时间把数据写入到缓冲区buffer中#xff0c;而消费者线程则每隔一段时间从buffer中取出数据#xff0c;为了避免…(1) 什么是条件变量实现线程同步?   假如我们的程序中有两个线程一个是生产者线程另一个是消费者线程生产者线程每隔一段时间把数据写入到缓冲区buffer中而消费者线程则每隔一段时间从buffer中取出数据为了避免两个线程读写混乱我们让生产线线程写完后再通知消费者来读数据那么则可以用条件变量来实现线程的同步。 (2) 条件变量的两个动作   条件不满足: 阻塞线程   条件满足: 通知阻塞的线程开始工作 (3) 条件变量的类型: pthread_cond_t cond; (4) 主要函数: 初始化一个条件变量 第二参数一般为NULL int pthread_cond_init(pthread_cond_t *restrict cond, const pthread_condattr_t *restrict attr); 销毁一个条件变量 int pthread_cond_destroy(pthread_cond_t *cond); 阻塞等待一个条件变量 int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex); 阻塞线程        将已经上锁的mutex解锁        解除阻塞后会对mutex加锁 限时等待一个条件变量 int pthread_cond_timedwait(pthread_cond_t *restrict cond, pthread_mutex_t *restrict mutex, const struct timespec *restrict abstime); 激活一个等待该条件的线程存在多个等待线程时按入队顺序激活其中一个。 int pthread_cond_signal(pthread_cond_t *cond); 唤醒全部阻塞在条件变量上的线程 int pthread_cond_broadcast(pthread_cond_t *cond); (5)注意事项 注意 1 mutex 互斥锁必须是普通锁(PTHREAD_MUTEX_TIMED_NP)或者适应锁(PTHREAD_MUTEX_ADAPTIVE_NP)。 在调用 pthread_cond_wait()前必须由本线程加锁 pthread_mutex_lock()。 在更新条件等待队列以前mutex 保持锁定状态。 在线程挂起进入等待前解锁。 注意 2 在条件满足从而离开 pthread_cond_wait() 之前mutex 将被重新加锁以与进入 pthread_cond_wait()前的加锁动作对应。 也就是说在做 pthread_cond_wait 之前往往要用 pthread_mutex_lock 进行加锁而 调 pthread_cond_wait 函 数 会 将 锁 解 开 然 后 将 线 程 挂 起 阻 塞 。 直 到 条 件 被 pthread_cond_signal 激发该函数内部又会将锁状态恢复为锁定状态最后再用 pthread_mutex_unlock 进行解锁。 注意 3 pthread_cond_wait() 和 pthread_cond_timedwait()都被实现为取消点也就是说如果 pthread_cond_wait()被取消则退出阻塞然后将锁状态恢复然后当前线程就会终止。即 互斥锁又恢复锁定状态然而当前线程已经被取消掉那么这个互斥锁就不会被解开了此 时锁得不到释放就会造成死锁因而需要在线程退出前为其解锁。 (5)示例 1.初始化条件变量和互斥锁pthread_mutex_init(mutex, NULL);pthread_cond_init(cond, NULL);2.在线程中使用 (1)生产者线程pthread_mutex_lock(mutex);// 使用互斥锁保护共享数据对缓冲区buffer写入操作pthread_cond_signal(cond);// 通知阻塞的消费者线程,数据写入完毕可以解除阻塞了pthread_mutex_unlock(mutex);(2)消费者线程pthread_mutex_lock(mutex); //调用pthread_cond_wait前一般都会搭配pthread_mutex_lockpthread_cond_wait(cond, mutex); //等待生产者线程的通知从缓冲区buffer中读出数据pthread_mutex_unlock(mutex); //解锁3.销毁条件变量和互斥锁pthread_mutex_destroy(mutex);pthread_cond_destroy(cond); 本文参考文章 https://www.cnblogs.com/hesper/p/10738996.html https://www.cnblogs.com/harlanc/p/8596211.html
http://www.yutouwan.com/news/371078/

相关文章:

  • 网站seo优化包括哪些方面做爰全过程免费的视频网站有声音
  • 公司企业网站建设步骤网站入口首页
  • 投放广告的网站国外炫酷网站设计
  • 工业设计网站排名浦东建设环评网站
  • 做网站选用什么域名比较好wordpress主题自定义添加后台设置
  • 可拖拽式网站建设网站建设中html网页
  • 做公司网站软件网站页面描述
  • 东莞网站制作十强wordpress权限说明
  • 南宁建站官网做网站 需要了解什么
  • asp网站开发环境搭建钟星建设集团网站
  • 网站建设推广方案书云南哪有网站建设推广
  • 做博客网站需要工具吗销售渠道都有哪些
  • 百度竞价托管代运营郑州做优化的公司有哪些
  • 小熊代刷推广网站品牌营销策划英文
  • 互动科技网站建设关键词挖掘排名
  • 北京网站优化公司官网设计公司有哪些
  • 谁有做那事的网站加盟网络营销推广公司
  • 自学考试 网页制作与网站建设06627安阳空气
  • 网站开发询价表模板下载企业管理咨询公司宗旨
  • 手机网站建设注册塔山双喜wordpress分类目录多级菜单
  • 网站域名不备案要证书有啥用安徽建设工程信息网技术服务电话
  • 界面好看的网站珠海专业制作网站
  • 海外建站流程seo关键词教程
  • 移动网站有哪些软件设计师是干什么的
  • 电商网站运营怎么做小程序开发平台的设计是实现
  • 网站 自助建站品牌营销策划案例ppt
  • 网站页面布局用什么做荆州网站建设推荐
  • 网站建设管理后台导航栏建设网站需要哪些东西
  • 判断网站做的好坏宁波网站搭建公司定制
  • 广告视频网站市场营销策略包括哪些策略