第18 章探讨 C++新标准.新增的其他功能,并行编程

并行编程

第18 章探讨 C++新标准.新增的其他功能,并行编程

文章目录

  • 并行编程
  • [18.7C++11 新增的其他功能](#18.7C++11 新增的其他功能)
  • [18.7.1 并行编程](#18.7.1 并行编程)

18.7C++11 新增的其他功能

C++11增加了很多功能,本书无法全面介绍;另外,本书编写期间,其中很多功能还未得到广泛实现。

然而,有些功能有必要简要地介绍一下。

18.7.1 并行编程

当前,为提高计算机性能,增加处理器数量比提高处理器速度更容易。因此,装备了双核、四核处理器甚至多个多核处理器的计算机很常见,这让计算机能够同时执行多个线程,其中一个处理器可能处理视频下载,而另一个处理器处理电子表格。

有些操作能受益于多线程,但有些不能。考虑单向链表的搜索:程序必须从链表开头开始,沿链接依次向下搜索,直到到达链表末尾:在这种情况下,多线程的帮助不大。再来看未经排序的数组。考虑到数组的随机存取特征,可让一个线程从数组开头开始搜索,并让另一个线程从数组中间开始搜索,这将让搜

索时间减半。多线程确实带来了很多问题。如果一个线程挂起或两个线程试图同时访问同一项数据,结果将如何呢?为解决并行性问题,C+定义了一个支持线程化执行的内存模型,添加了关键字thread local,提供了相关的库支持。关键字 thread local将变量声明为静态存储,其持续性与特定线程相关;即定义这种变量的线程过期时,变量也将过期。

库支持由原子操作(atomic operation)库和线程支持库组成,其中原子操作库提供了头文件 atomic,而线程支持库提供了头文件thread、mutex、condition variable 和 future。

相关推荐
我头发多我先学7 分钟前
C++ STL vector 原理到模拟实现
c++·算法
llm大模型算法工程师weng10 分钟前
Python拉取视频流的性能优化实战
开发语言·python·性能优化
小程故事多_8011 分钟前
破局 AI 编码乱象:SDD 规范驱动 + OpenSpec+SuperPowers 双框架,让 AI 写对每一行可追溯代码
开发语言·人工智能·aigc·ai编程
kaico201813 分钟前
面向对象和高级特性
开发语言·python
鲸渔14 分钟前
【C++ 入门】第一个程序:Hello World 与基本语法规则
开发语言·c++·算法
EverestVIP15 分钟前
C++ 仿函数(Functors)
c++
来自远方的老作者19 分钟前
第8章 流程控制-8.2 选择结构
开发语言·python·选择结构
kaico201820 分钟前
python常用标准库
开发语言·python
会编程的土豆24 分钟前
【数据结构与算法】 时间复杂度计算
数据结构·c++·算法
John_ToDebug24 分钟前
Chromium 页面类型与 IPC 通信机制深度解析
前端·c++·chrome