news 2026/4/14 16:44:37

《C++ 并发实践》第二版 读书笔记 持续更新

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
《C++ 并发实践》第二版 读书笔记 持续更新

第一章 你好,并发世界

1998年发布的C++首个版本 C++98

2011年发布C++重大修改版本 C++11 (2011年后,每3年发布一个新标准)

2014年发布的C++版本 C++14

2017年发布的C++版本 C++17

1.1何为并发

指两个或两个以上的独立活动同时发生。计算机的并发,指在单个系统里同时执行多个独立的任务。

1.1.1计算机的并发

在理想状态下,单核系统和多核系统中,任务的并发如下图,灰色代表切换任务的开销。

但在实际计算机上,需要并行的任务会远远超过核心数量,实际在多核系统中,多任务执行情况如下图:

1.1.2并发的方式

1.多进程并发

将应用程序分为多个独立的进程同时运行,如进行网页浏览和文字处理。进程间通过(信号、套接字、文件、管道等等)通讯。缺点是复杂,速度慢,消耗管理资源。优点是操作系统提供了保护和更高级的通讯机制,更容易编写安全的并发代码,支持远程连接。
2.多线程并发

单进程中运行多个线程。每个线程相互独立,线程共享地址空间,全局变量仍然是全局的,指针、对象的引用或数据可以在线程之间传递。虽然,进程之间通常共享内存,但同一数据的内存地址在不同的进程中不相同,所以这种共享难以建立和管理。

优点是地址共享,访问速度快,缺点是为确保所有线程访问同一数据的一致性,需要做大量管理工作。

3.并发与并行

并行”:更加关注性能。通畅使用硬件提高数据处理速度时,会讨论程序的并行性。

“并发”:更加关注任务分离和响应,会讨论程序的并发性。

1.2 为什么使用并发

1.2.1 分离关注点

1.2.2 性能

1.2.3 什么时候不适用并发

1.3并发和多线程

1.3.1 C++多线程历史

1.3.2 支持并发

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 6:27:07

联合国教科文组织:HunyuanOCR助力濒危语言文献保存

HunyuanOCR:用轻量大模型守护濒危语言文献 在撒哈拉以南非洲的一个小村落里,一位人类学家正小心翼翼地翻阅着一本羊皮卷手稿——这是当地一种即将消亡的语言最后的书面记录。纸张泛黄、字迹斑驳,许多段落已被虫蛀侵蚀。他尝试用手机拍摄后上传…

作者头像 李华
网站建设 2026/4/15 6:28:38

Linux上调试C#程序太痛苦?揭秘企业级跨平台调试最佳实践

第一章:Linux上调试C#程序的现状与挑战在跨平台开发日益普及的背景下,C# 程序在 Linux 环境下的调试需求显著增长。尽管 .NET Core 和后续的 .NET 5 实现了真正的跨平台支持,但 Linux 上的调试体验仍面临诸多挑战。调试工具链的碎片化 Linux …

作者头像 李华
网站建设 2026/4/14 20:42:02

跨境电商助力工具:用HunyuanOCR识别多国商品说明书

跨境电商助力工具:用HunyuanOCR识别多国商品说明书 在跨境电商的日常运营中,一个看似简单却极其耗时的问题反复出现:如何快速、准确地处理来自全球各地的商品说明书?这些文档可能是德文的药品说明、日文的电器标签、法语的化妆品…

作者头像 李华
网站建设 2026/4/14 7:27:07

LINQ合并操作效率翻倍,你必须知道的7种C#集合表达式实战技巧

第一章:LINQ合并操作的核心机制解析LINQ(Language Integrated Query)在 .NET 中提供了强大的数据查询能力,其中合并操作是处理多个数据源时的关键技术。通过 Concat、Union、Zip 和 Join 等方法,开发者可以高效地整合来…

作者头像 李华
网站建设 2026/4/15 1:25:02

盲人辅助阅读设备:HunyuanOCR实时识别环境文字并朗读

盲人辅助阅读设备:HunyuanOCR实时识别环境文字并朗读 在城市的街头,一位视障者站在公交站牌前,手中握着智能眼镜的控制按钮。他轻声说:“帮我看看下一班车还有多久到?”不到两秒,耳边传来清晰的语音&#…

作者头像 李华
网站建设 2026/4/15 5:47:27

交错数组初始化效率提升300%?这3个高级技巧你不可不知

第一章:C#交错数组初始化的基本概念在C#中,交错数组(Jagged Array)是一种特殊的多维数组结构,它由多个一维数组组成,每个子数组可以具有不同的长度。与矩形数组不同,交错数组提供了更高的灵活性…

作者头像 李华