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

wordpress 启用多站点昆明app网站开发公司

wordpress 启用多站点,昆明app网站开发公司,哪里有网站监控工具,软文经典案例文章目录 并发并行及其使用原因并发与并行使用与不使用并发的原因C多线程支持 并发并行及其使用原因 本书相关 github翻译地址本书源码下载地址第一版github 翻译地址英文原版PDF不错的笔记所有实例的源代码,可在出版商的网站上进行下载github上下载源码 路线图 …

文章目录

  • 并发并行及其使用原因
    • 并发与并行
    • 使用与不使用并发的原因
    • C++多线程支持

并发并行及其使用原因

本书相关

  • github翻译地址
  • 本书源码下载地址
  • 第一版github 翻译地址
  • 英文原版PDF
  • 不错的笔记
  • 所有实例的源代码,可在出版商的网站上进行下载
  • github上下载源码

路线图

  • 前4章,介绍了标准库中的各种工具,展示使用方法。
  • 第5章,涵盖了内存模型和原子操作,包括原子操作如何对执行顺序进行限制(这章标志着介绍部分的结束)。
  • 第6、7章,开始讨论高级主题,如何使用基本工具去构建复杂的数据结构——第6章是基于锁的数据结构,第 7章是无锁数据结构。
  • 第8章,针对设计多线程代码给了一些指导意见,覆盖了性能问题和并行算法。
  • 第9章,线程管理——线程池,工作队列和中断操作。
  • 第10章,介绍C++17中标准库算法对并行性的支持。
  • 第11章,测试和调试——Bug类型,定位Bug的技巧,以及如何进行测试等等。
  • 附录,包括新标准中语言特性的简要描述,主要是与多线程相关的特性,以及在第4章中提到的消息传递库的实现细节和C++17线程库的完整的参考。

并发与并行

并发:指两个或两个以上的独立活动同时发生。

多处理器服务器很早就实现了并行计算。基于单芯多核处理器(多核处理器)的台式机能够真正的并行多个任务,我们称其为”硬件并发“。

并发的两种方式:真正并行任务切换

即便是硬件并发的系统,也有比硬件“可并行最大任务数”还要多的任务需要执行,所以任务切换在这些情况下仍然适用。实际上,许多因素会使得任务分割不均或调度不规则。

无论应用是在单核处理器,还是多核处理器上运行,不论是任务切换,还是硬件并发,这里提到的技术、功 能和类都会涉及。如何使用并发,很大程度上取决于可用的硬件并发。

  • 多进程并发
    • 优点:操作系统会对进程进行保护,更容易编写 安全的并发代码。
    • 缺点:运行多个进程的固定开销:需要时间启动进程,操作系统需要 资源来管理进程。
  • 多线程并发
    • 共享地址空间(全局变量仍是全局的,指针、对象的引用或数据可在线程之间传递)。
    • 同一数据的内存地址在不同的进程中不相同,所以这种共享难以建立和管理。
    • 缺少线程间的数据保护,使得操作系统记录的工作量减小。必须确保每个线程所访问 到的数据一致,这就需要对线程通信做大量的工作。
    • C++标准并未对进程通信提供原生支持,所以实现会依赖于平台相关的API。
    • 对线程的划分是基于概念上的设计,所以线程数不再依赖CPU核芯数。

并发与并行的区别:两个概念大部分是重叠,为了区别多线程中不同的关注点。

  • “并行”更加注重性能。使用硬件提高数据处理速度时,会讨论程序的并行性。
  • 关注重点在于任务分离或任务响应时,会讨论程序的并发性。

使用与不使用并发的原因

  • 使用——分离关注点

    将相关的代码与无关的代码分离,可以使程序更容易理解和测试,从而减少出错的可能。不显式地使用并发,就得编写一个任务切换机制,或者在操作中主动地调用一段不相关代码。

  • 使用——性能

    并发利用方式:

    • 一个单个任务分成几部分并行运行,从而降低总运行时间,这就是任务并行(task parallelism)。但是各个部分之间可能存在着依赖。
    • 每个线程在不同的数据块上执行相同的操作,称为数据并行(data parallelism)

    容易并行的算法称为是“易并行的”(embarrassingly parallel),直接直接硬件线程数量。

  • 不使用——收益比不上成本

线程资源有限,启动与切换线程有额外开销。管线程池(参见第9章)可以用来限制线程的数量。

C++多线程支持

C语言中流行的多线程API——POSIX标准中的C标准和 Microsoft Windows API——很多C++编译器供应商,通过各种平台相关的扩展来支持多线程,也有MFX应用框架和BOOST和ACE通用库。

C++标准库也扩展了:管理线程(参 见第2章)、保护共享数据(参见第3章)、线程间同步操作(参见第4章),以及原子操作(参见第5章)。

C++14中为并发和并行添加了一个新的互斥量类型,用于保护共享数据(参见第3章)。C++17考虑的更多:添加了一整套的并行算法(参见第10章)。

为了效率,C++整合了一些底层工具。这样就需要了解使用高级工具和 使用低级工具的开销差,这个开销差就是抽象代价(abstraction penalty)。

为了达到终极性能,需要给与硬件打交道的开发者提供足够多的底层工具。原子操作库,可直接控制单个位、字节、内部线程间的同步,以及对所有变化的可见性

在C++线程库中提供一个native_handle()的成员函数,允许通过使用平台相关API直接操作底层实现。

总结

从1998标准中完全缺乏支持,经历了各种平台相关的扩展,再到C++11/C++14/C++17标准和并发技术规范对多线程的支持。芯片制造商选择了以多核芯的形式,使得更多任务可以同时执行的方式来增加处 理能力,而不是增加单个核心的执行速度。在这个趋势下,C++多线程来的正是时候,它使得开发者们可以利用CPU带来的更加强大的硬件并发。

http://www.yayakq.cn/news/704743/

相关文章:

  • 网站开发人员招聘要求抚顺市网站建设
  • 陕西网站开发公司哪家好新北仑网站怎么做的
  • 哈尔滨企业建站drupal joomla wordpress 移动设备
  • 做网站外包公司怎样创建一个网站平台
  • 网站单子最近韩国电影片在线观看免费高清中文
  • 广州深圳做网站上海谷歌seo公司
  • 招聘网站页面乐清做网站的公司
  • 网站备案他可以经营吗养生网站策划
  • 网站建设多少钱裤网站建设高级开发语言
  • 腾讯云网站备案不能用阿里云建网站免费咨询
  • 做网站mfdos简单的小公司企业简介
  • 长沙电商网站ppt素材大全免费下载
  • 网站网站建设网站泰州网站制作专业
  • 做天猫网站要多少钱网页制作与网站建设课堂实录
  • 绥中做网站公司漳州博大网站建设
  • 信息门户网站建设报价岐山网站开发
  • 如何做网站静态页面药品招商网站大全
  • 电脑报价网站网站建设同行友情链接
  • 怎么建网站视频互联网营销师题库及答案
  • 惠州惠阳网站建设做暧昧免费视频大全网站
  • 手机短视频网站的建设wordpress 鼠标悬停
  • 怎么在百度上做公司网站电商平台怎么加入
  • 正规的彩票网站怎么做可以购买网站空间的网站
  • 网站建设平台是干什么的网站外链建设到底该怎么做
  • 校园网站建设费用简单做网站
  • 微信企业网站0基础网站建设教程视频
  • 网站建设煊煊网欧洲一卡2卡3卡4卡高清免费
  • 邵阳市住房和城乡建设局网站怎样才能做一个优质的外贸网站
  • 网站主域名设计手机访问的网站
  • 电商网站建设方案100例wordpress更换网址后台怎么进