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

学做网站需要哪几本书小型网站开发费用

学做网站需要哪几本书,小型网站开发费用,设计网络平台的公司,建设公司企业组织构架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.tj-hxxt.cn/news/230677.html

相关文章:

  • 网站搭建公司排行榜电脑去哪里建设网站
  • 帝国做的网站打开速度东莞建网站公司哪个好
  • 甘肃平凉建设局网站个人网站做什么好
  • wordpress登录后评论seo搜索引擎优化报价
  • 傻瓜式免费自助建站系统做书app下载网站
  • 全网网站建设优化做外贸推广的公司
  • 旅游网站开发与建设论文做海报的素材网站
  • 荆州seo推广优化网站做什么的
  • 普通网站一年要多少钱适合大学生做的网站有哪些
  • 网站技术开发文档模板哈尔滨网站开发建设公司
  • 网站目录结构怎么做网站域名怎么写好
  • 网络营销跟网站推广有啥区别精准客源 获客
  • 怎么做一个盈利网站wordpress新建html5
  • 专业的集团网站开发开发买房子平台
  • 最好的开发网站建设大连公共资源交易平台官网
  • 做心悦腾龙光环的网站是什么湘阴网站建设
  • 怎么建网站赚钱秦皇岛市属于哪个省份
  • 网站代码 上传 wordpress 空间各地农业信息网站的建设
  • 美团招聘网站开发杭州久邦电力建设有限公司网站
  • 广州网站设计与制作公司技术支持 深圳网站建设贝尔利
  • 免费服务器搭建网站详细教程看设计比较好的网站
  • 什么是静态网站网站制作好如何上线
  • 化妆品销售网站开发与设计域名查询中国万网
  • 厦门 网站建设 网站开发 未来网络然后搭建网站
  • 常州模板建站哪家好怎么做58同城网站吗
  • 个人cms网站wordpress怎么上传pdf
  • php网站开发专业是做什么的wordpress打开图片预览代码
  • seo网站的锚文本怎么写网站建设论文答辩题目
  • 教育培训机构有关的网站做网站的外包公司可以进吗
  • 潍坊网站优化排名一个人做网站要多久