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

规划阿里巴巴网站怎么做义乌做网站多少钱

规划阿里巴巴网站怎么做,义乌做网站多少钱,网站主页跳转index,深圳平面设计公司排名榜C++并发编程:构建线程安全队列(第二部分:细粒度锁) 1. 引言 在多线程环境下,为了保证数据的一致性和正确性,需要使用同步原语来对共享数据的访问进行互斥和同步。std::queue作为一种先进先出(FIFO)的数据结构,它本身并不是线程安全的,同时访问它可能导致数据竞争和不一致的问…C++并发编程:构建线程安全队列(第二部分:细粒度锁) 1. 引言 在多线程环境下,为了保证数据的一致性和正确性,需要使用同步原语来对共享数据的访问进行互斥和同步。std::queue作为一种先进先出(FIFO)的数据结构,它本身并不是线程安全的,同时访问它可能导致数据竞争和不一致的问题。 所以在多线程环境下,我们需要构建一个线程安全的队列,使其可以安全地被多个线程同时访问,而不会出现数据竞争。这里我们使用C++11中的一些新特性如std::shared_ptr、std::unique_ptr、std::mutex、std::condition_variable等来实现一个线程安全队列。 2. 设计要点 线程安全队列的关键设计要点包括: 使用互斥量保护队列的头尾指针,使多线程不能同时修改队列结构使用条件变量实现线程之间的通知和等待,避免忙等待(busy waiting)提供多种不同的访问接口如阻塞、非阻塞、等待获取等,增强队列的实用性使用std::shared_ptr、std::unique_ptr等智能指针管理内存,避免手动new/delete带来的问题尽量减少锁的粒度,例如头尾指针使用不同的锁,以提高并发性下面我们来看一下这个线程安全队列的具体设计和实现。 3. 队列的节点结构 队列节点node使用一个std::shared_ptr保存数据,和一个std::unique_ptr指向下一节点: struct node {std::shared_ptrT data;std::unique_ptrnode next; };使用shared_ptr而不是原始指针管理数据,可以自动释放内存,避免泄漏。unique_ptr则保证节点间的引用关系唯一,方便传递所有权。 4. 队列结构 队列结构包含头尾指针、互斥量和条件变量: std::mutex head_mutex; std::unique_ptrnode head;std::mutex tail_mutex; node* tail;std::condition_variable data_cond;头指针使用unique_ptr且初始化为一个哑节点。尾指针使用原始指针,初始化指向哑节点。 头尾指针分别使用head_mutex和tail_mutex保护,以减小锁的粒度,不同指针可以并发修改。 条件变量data_cond用于在队列为空时等待,并在有数据可获取时发出通知。 5. 主要接口 队列主要提供下面一些接口: 5.1 非阻塞获取 try_pop尝试非阻塞地弹出队头元素,如果队列为空则直接返回: std::shared_ptrT try_pop() {std::lock_guardstd::mutex head_lock(head_mutex);if (head.get() == get_tail()) {return {}; }return std::move(head-data); }仅对头指针上锁,执行常数时间操作,可并发访问。 5.2 阻塞获取 wait_and_pop会在队列为空时等待,直到有元素入队后唤醒线程并返回数据: std::shared_ptrT wait_and_pop() {std::unique_lockstd::mutex head_lock(wait_for_data());return std::move(head-data); }std::unique_lockstd::mutex wait_for_data() {std::unique_lockstd::mutex
http://www.dnsts.com.cn/news/212310.html

相关文章:

  • 做网站卖资料WordPress如何去掉文章时间
  • 广西优化网站程序员培训班哪家好
  • 什么网站比较吸引流量免费做苗木的网站
  • 织梦网站添加视频站长工具网
  • 一站式做网站费用免费网站你懂我意思正能量软件
  • 北京网站制作收费明细翻硬币网站怎么做
  • 昆明定制网站建设广州企业500强名单
  • 网站开发人员的行业分析小程序源码大全
  • 用自己的电脑建网站网站公司动态做不了怎么办
  • 无锡网站优化推广方案成都公司网站seo
  • 公路机电工程建设网站广州旅游团购网站建设
  • 做特价的网站个人网站制作模板主页
  • 学习网站开发培训网站做成软件
  • 网页设计购物网站模板湛江企业模板建站
  • 网站(建设)安全自查报告wordpress目录权限设置密码
  • 摄影网站官网大全网站开发设计培训
  • 哪个网站做自媒体比较好线上企业推广公司
  • 临沂网站建设厂家网站建设与运营市场风险
  • 搜狐新闻手机网怎么提高网站seo优化关键字排名
  • 制作网站先做前端还是后端天津河北做网站的公司
  • 知名电子商务网站有哪些网络规划设计师教程第二版 pdf
  • 邮箱网站架构网站备案组织机构代码
  • 便宜网站建设怎么样建平台跟建网站
  • 网站查询页面设计扬中市做网站
  • 建设部相关网站短视频seo代理
  • 邢台网站制作哪里有平面设计公司简介模板
  • 网站后台管理系统 静态页面吴江住房和城乡建设局官方网站
  • 成都市网站备案广陵建设局网站
  • 山西两学一做网站登录专门做团购的网站有哪些
  • 能源网站开发12306网站开发笑话