C++多线程编程第一讲-并发的基本概念及实现,进程、线程基本概念
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | /*第一节 并发基本概念与实现,进程、线程基本概念*/ //(1)并发、进程、线程的基本概念和综述 //(1.1)并发:两个或者更多的任务同时进行,一个程序同时执行多个独立的任务。 // 单核cpu某一个时刻只能执行一个任务;单核cpu实行多任务的方式是进行任务切换实现的。 // 这是一种并发的假象。任务之间的切换也是要有时间开销的。 // 多核cpu上可以实现真正的并发(同时执行多个任务-硬件并发)。 // 使用并发的原因就是同时可以执行多个任务,提高性能。 //(1.2)可执行程序:就是磁盘上的一个文件,windows:exe,linux rwx //(1.3)进程:可执行程序运行起来就产生一个进程。 //(1.4)线程:每个进程都会有一个主线程,并且主线程是唯一的。当执行一个可执行程序,主线程 // 随着进程一起启动。实际上是进程的主线程来调用main来执行。除了主线程之外,程序员可以 // 写代码创建其他的线程。线程也并不是越多越好,每一个线程需要占用堆栈内存。 // 线程是用来执行代码的。一个新的线程代表一个新的通路。创建线程的数量不建议 // 超过200-300。一个进程中最少有一个线程,那就是主线程。 //(1.5)学习心得: //(2)并发的实现方法 //(2.1)多进程并发 //(2.2)多线程并发:单个进程中创建了多个线程,轻量级的进程。一个进程中的所有线程 // 是共享内存的。全局变量,指针,引用等等都可以在线程之间传递。相较于多进程, // 优先考虑多线程实现。 //(2.3)总结:线程有以下优点:1.线程启动更快,消耗资源少。2.执行速度更快。 // 缺点:较高的复杂度,小心数据的一致性问题。 // //(3)C++11新标准线程库 //C++语言本身增加了对多线程的支持。可以编写与平台无关的多线程代码。可移植性,跨平台。 |
分类:
C++并行编程
posted on 2021-09-16 08:25 xcxfury001 阅读(67) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用