如果你已经能写函数、能用类、能拿 requests 抓点东西,但一遇到「几千个请求怎么发才快」「这段文本怎么批量抠出想要的部分」就开始到处搜代码片段——那这门课针对的就是这块缺口。它不讲语法入门,也不讲 Web 框架怎么搭,专攻 Python 里那些「知道有这么回事、但一直没系统用过」的部分:多进程、多线程、子进程管理,以及正则表达式。

先自查:这几个问题你能答上来吗

  • 开 10 个线程跑下载,和开 10 个进程跑下载,哪个真的更快?为什么在 Python 里答案不一样?
  • Process 直接实例化和继承 Process 类重写 run(),分别适合什么场景?
  • join() 到底在等谁、等多久?不写 join(),主进程会先跑完吗?
  • 正则里 findall、search、match 的返回结果为什么长得都不一样?
  • 有一串「日期-金额-备注」混排的文本,怎么一次把三段都取出来,而不是匹配三遍?

能顺畅答出四个以上,这门课对你偏简单,可以直接跳到正则分组和进程池那几节挑着看。答不上三个,说明基础概念是多线程那段更需要补的。

多进程这块,讲的是「怎么用」而不是「是什么」

资料里从子进程的创建与启动讲起,直接实例化 Process 是一条线,继承 Process 类重写 run() 是另一条线,两条都会走一遍。真正容易踩坑的地方在后面:父进程和子进程谁先结束、join() 怎么产生阻塞、不阻塞的时候会出现什么现象。这些问题在单机脚本里不明显,一旦放到批量任务里就会暴露成「程序跑完了但结果没写完」或者「日志乱序」。

学这部分时建议准备一个可重复的小任务,比如对一个目录下的文件做耗时计算,用不同方式跑一遍,对比耗时和输出顺序,比只看讲解记得牢。

正则表达式:从「会写」到「会组织」

正则部分不是从元字符表开始背,而是围绕实际使用链条展开:预编译、查找、分组匹配。预编译解决的是同一个模式反复使用时的效率问题;查找讲的是不同函数的返回结构差异,这里不搞清楚,写出来的代码就总要靠打印试;分组匹配是分水岭——会用括号把一段复杂文本拆成几个字段之后,正则才算真正能用在工作里。

这部分配套练习的要点是:准备一份真实格式混乱的文本(日志、订单、爬下来的表格都行),目标是把需要的字段全部结构化提取出来,而不是写一条只对你造的那一句样例有效的表达式。

看完应该能回答的问题

  • 面对一个耗时任务,判断该用多进程、多线程还是干脆串行的依据是什么?
  • 子进程的启动方式和主进程的等待方式,两者组合起来有几种典型写法,各自适用什么情况?
  • 一条正则要同时提取多个字段时,分组怎么划分、返回结果怎么取,能一次写对吗?
  • 预编译在什么量级下才值得做,日常小脚本里有没有必要?

什么人适合,什么人不适合

适合:写过一些 Python 脚本、能读懂别人的代码,但涉及并发和文本处理时习惯复制粘贴、说不清原理的人。也适合面试前想把这几个高频考点串一遍的人。

不适合:还没写过类、不清楚函数参数怎么传的人;以及想学 asyncio、协程、框架源码的人——这门课覆盖的是进程、线程和正则这条线,不是异步那条线。缺口在哪就补哪,先确认自己缺的是这块,再决定要不要花时间。

图解Python(高级进阶篇 )价值198元

深入剖析Python高级特性

编辑点评

系统讲解Python高级特性,涵盖多线程、多进程、正则表达式等,适合进阶学习。

⭐ 编辑推荐

全面解析Python高级特性,助你提升编程能力。

深入浅出,实例丰富,适合有Python基础的学习者。

课程亮点

• Python高级特性解析
• 多线程多进程实战
• 正则表达式应用

课程目录

图解Python(高级进阶篇)文档.png  [493.5 KB]
1-4 子进程的创建与启动之直接实例化Process(下).mp4  [30.2 MB]
1-14 阻塞父进程的子进程之方法join().mp4  [24.8 MB]
2-4 正则表达式的预编译.mp4  [42.6 MB]
2-13 使用模块re实现字符串的查找(下)_ev.mp4  [27.1 MB]
2-9 分组匹配(下).mp4  [28.8 MB]
2-18 Match对象的属性和方法_ev.mp4  [43.8 MB]
1-47 管道.mp4  [34.5 MB]
1-35 多线程同步之RLock(下).mp4  [19.2 MB]
1-49 进程间通信之Manager.mp4  [15.7 MB]
1-51 定时器线程Timer.mp4  [17.6 MB]
1-34 多线程同步之RLock(中).mp4  [26.0 MB]
2-2 使用模块re实现字符串的匹配(上).mp4  [42.2 MB]
1-1 进程和线程的概述.mp4  [31.6 MB]
1-31 多线程的死锁(下).mp4  [14.1 MB]
1-21 线程池ThreadPoolExecutor.mp4  [15.8 MB]
图解Python(高级进阶篇).zip  [116.0 MB]
2-1 正则表达式的简介.mp4  [37.6 MB]
1-52 为什么需要ThreadLocal.mp4  [22.6 MB]
2-11 使用模块re实现字符串的查找(上).mp4  [41.1 MB]
1-8 子线程的创建与启动之直接实例化Thread.mp4  [40.1 MB]
2-14 使用模块re实现字符串的替换(上).mp4  [39.6 MB]
1-40 经典生产者消费者问题(多线程Condition版).mp4  [26.8 MB]
2-17 使用模块re实现字符串的劈分_ev.mp4  [28.1 MB]
1-18 进程池ProcessPoolExecutor(上).mp4  [35.3 MB]
1-36 多进程同步之RLock.mp4  [7.0 MB]
1-3 子进程的创建与启动之直接实例化Process(上)_ev.mp4  [25.3 MB]
1-46 多进程同步之Event.mp4  [12.2 MB]
1-6 子进程的创建与启动之调用函数fork().mp4  [26.3 MB]
1-45 多线程同步之Event.mp4  [26.0 MB]
1-20 进程池ProcessPoolExecutor(下).mp4  [59.8 MB]
1-27 多线程同步之Lock(上).mp4  [24.9 MB]
1-7 自动创建与启动的父线程.mp4  [23.4 MB]
2-12 使用模块re实现字符串的查找(中).mp4  [18.7 MB]
1-44 多进程同步之Semaphore.mp4  [13.9 MB]
1-7 自动创建与启动的父线程_ev.mp4  [22.9 MB]
1-39 多进程同步之Condition_ev.mp4  [6.8 MB]
1-16 进程池Pool.mp4  [36.7 MB]
1-37 多线程同步之Condition(上).mp4  [26.8 MB]
1-29 多进程同步之Lock.mp4  [12.4 MB]
1-33 多线程同步之RLock(上).mp4  [18.2 MB]
1-43 多线程同步之Semaphore(下).mp4  [9.9 MB]
2-5 单个字符的匹配.mp4  [47.0 MB]
1-19 进程池ProcessPoolExecutor(中)_ev.mp4  [19.3 MB]
1-42 多线程同步之Semaphore(上).mp4  [25.9 MB]
1-9 子线程的创建与启动之继承Thread.mp4  [22.2 MB]
1-41 经典生产者消费者问题(多进程Condition版).mp4  [10.5 MB]
1-32 多进程的死锁.mp4  [15.2 MB]
1-30 多线程的死锁(上).mp4  [19.9 MB]
1-5 子进程的创建与启动之继承Process.mp4  [37.8 MB]
1-17 线程池ThreadPool.mp4  [27.6 MB]
2-3 使用模块re实现字符串的匹配(下).mp4  [25.5 MB]
1-26 多进程操作共享数据的不安全性.mp4  [10.8 MB]
1-28 多线程同步之Lock(下).mp4  [30.8 MB]
2-15 使用模块re实现字符串的替换(下).mp4  [19.5 MB]
1-50 全局解释器锁GIL.mp4  [37.7 MB]
1-12 守护父进程的子进程.mp4  [18.3 MB]
2-6 正则表达式与原始字符串.mp4  [46.7 MB]
1-53 什么是ThreadLocal.mp4  [29.5 MB]
1-2 自动创建与启动的进程.mp4  [23.2 MB]
2-10 逻辑匹配.mp4  [15.7 MB]
1-23 全局变量在进程的所有线程中可以共享.mp4  [5.6 MB]
1-24 多线程操作共享数据的不安全性.mp4  [17.0 MB]
2-16 边界匹配.mp4  [39.3 MB]
1-25 进程间通信之共享内存.mp4  [33.4 MB]
1-13 守护父线程的子线程.mp4  [21.7 MB]
1-15 阻塞父线程的子线程之方法join().mp4  [14.0 MB]
1-48 进程间通信之管道.mp4  [28.7 MB]
1-10 多进程执行的不确定性.mp4  [13.5 MB]
2-7 贪婪匹配与勉强匹配.mp4  [31.1 MB]
1-22 全局变量在多个进程中不能共享.mp4  [9.9 MB]
2-8 分组匹配(上).mp4  [17.6 MB]
1-11 多线程执行的不确定性.mp4  [7.9 MB]
1-38 多线程同步之Condition(下)_ev.mp4  [29.6 MB]

适合人群

  • Python开发者
  • 进阶学习者

学习收获

掌握Python高级特性
提升编程能力
解决复杂问题

祝您学习愉快!

学有所成,前程似锦!