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++语言本身增加了对多线程的支持。可以编写与平台无关的多线程代码。可移植性,跨平台。

  

posted on   xcxfury001  阅读(67)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用

导航

< 2025年3月 >
23 24 25 26 27 28 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 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示