黑马程序员 Python 高级语法进阶教程 - 第1节 多任务介绍、
本人在实习过程中遇到了线程阻塞为了解决bug特地前来复习多线程。大学误人子弟真是害人不浅。
在现代编程中,“多任务”这个词已经不再陌生。我们每天使用的操作系统本质上就是一个强大的“多任务调度器”。而在 Python 的世界里,想要让程序处理更高效、更有响应力,理解并掌握“多任务”编程,至关重要。
今天我们跟随黑马程序员的课程,从零开始,认识什么是多任务、为什么需要它,以及它的两种基本形式——并发与并行。
一、为什么需要多任务?
如图中所展示,当我们从网络上下载多个视频文件时,浏览器往往是同时发起多个下载任务。为什么不一个下载完再开始下一个?答案其实很直白:
多任务可以 大大提升程序的执行效率。
CPU 是一个高效的计算器,但它只能处理一件事情,如果让它“傻等”某个操作完成(比如网络响应),那简直就是资源的浪费。多任务就是为了最大程度利用 CPU 的运算能力,在一个任务等待的时候,迅速切换去处理别的任务。
二、多任务的概念:什么是多任务?
多任务就是 在同一时间段内执行多个任务。
注意,不一定是“真正同时”,而是表面上感觉是同时。这就引出了两个关键词:并发(Concurrency)和并行(Parallelism)。
三、并发:快速切换,让你以为是“同时执行”
在黑马程序员课程中提到一个例子:
一个单核 CPU 在处理多个任务时,操作系统会快速地在多个任务之间来回切换,每次只执行一个任务的一小部分,比如执行 0.01 秒,就切换到下一个任务。
这种切换速度极快,快到人类无法察觉,就像我们看电视的时候,其实是由一帧一帧的画面快速播放而成一样。这种现象就叫 并发。
🔹 关键词:任务数 > CPU 核心数
🔹 核心思想:快速切换、模拟同时执行
例子:
-
软件1 执行0.01秒
-
切换到 软件2 执行0.01秒
-
再切换到 软件3 执行0.01秒
-
…
**结果:**虽然每次只执行一点点,但由于切换速度快,让我们“以为”它们是同时进行的。
四、并行:多个核心,真正的“同时”
与并发不同,并行是在多个 CPU 核心上,真正同时运行多个任务。
比如一台拥有4核的 CPU,它可以同时运行4个不同的任务,而不需要任务间切换。每个内核就像一个“专用跑道”,各跑各的,互不打扰。
🔸 关键词:任务数 ≤ CPU 核心数
🔸 核心思想:真正的同时执行
例子:
-
CPU 核心1 → 执行任务A
-
CPU 核心2 → 执行任务B
五、知识点总结
课程最后总结了多任务的核心知识点:
-
多任务的好处:
-
充分利用 CPU 资源
-
提高程序效率
-
增强程序的“并发处理能力”
-
-
多任务的两种执行方式:
-
并发:在一段时间内快速切换多个任务(单核模拟多任务)
-
并行:在一段时间内真正同时执行多个任务(多核真实多任务)
-
六、我的理解与思考
学到这里,我意识到“多任务”不只是技术细节,更是一种程序结构设计的哲学:如何在有限资源下,让程序保持高效?
就像现实生活中,我们一边听音乐一边写作业,手机在下载视频的同时还能刷微博,程序世界的“多线程思维”其实就是我们生活方式的映射。
七、下一步学习方向
后续黑马程序员课程会逐步深入讲解:
-
Python 中的多线程、多进程实现
-
asyncio 异步编程模型
-
PyQt 等 GUI 编程中如何使用信号与槽实现任务异步响应
我将继续跟进并记录学习过程,敬请期待第二篇笔记!
📌 课程来源:黑马程序员 Python 高级语法教程(黑马程序员Python高级语法进阶教程_python多任务及网络编程,从零搭建网站全套教程)
📌 视频示意:任务下载 + PPT讲解截图
如果你也在学习 Python,多任务是你必须征服的一座山峰。不要怕,这才刚开始。
—— END ——