6. 写入文件
1️⃣w模式 概述:w模式是写入模式,写入前会先截断文件(清空文件)。 代码: with open('b.txt', 'wt', encoding='utf-8') as file: file.write('你好') 2️⃣x模式 概述:x模式是排它性创建...
9. 目录操作
Python 中常见的目录操作如下: import os import shutil # 1️⃣os.mkdir(path):创建“单级”目录(如果目录已经存在,则会抛出异常) os.mkdir('D:/demo') # 2️⃣os.makedirs(path):创建“...
第 13 章 进程与线程
1. 一些核心概念 1️⃣并发 vs 并行 并发: 概念:在一段时间内,当 CPU 面对多个任务时,会将每个任务交替着执行一段时间。 特点: (1). 对于某个瞬间,CPU实际上只在执行一个任务。 (2). CP...
4. 关于 Process 的参数
在实例化 Process 时,可以传递以下参数: group: 默认值为None(应当始终为None)。 target:子进程要执行的可调用对象,默认值为 None。 name: 进程名称,默认为 None ,如...
2. join 方法
作用:阻塞当前进程(通常是主进程),直到调用 join 的那个进程执行完毕。 参数:join(timeout),timeout 为超时时间(秒)。如果时间到了进程还没结束,主进程就不等了,会继续执行。 注意...
3.terminate 方法
作用:向操作系统申请强制终止进程。 注意:使用 terminate 终止进程,不会执行 finally 代码块。 辅助方法:is_alive() 可用于查看进程是否还“活着”。 import os import time from multip...
9. 使用 Pipe 实现进程通信
Pipe 就像一根“水管”,一头负责发送,另一头负责接收。 1️⃣ 创建管道 # Pipe() 会返回两个连接对象,它们分别代表管道的两端。 # duplex用于控制管道为单向还是双向,True表示双向,F...
12. 使用 Thread 创建线程
首先我们要明确一个概念:任何一个正在运行的 Python 程序,至少都有一个线程! 1️⃣回顾一下我们之前的代码: if __name__ == '__main__': print('主进程中的代码') 对于上述代码来说:print(...
15. GIL 全局解释器锁
概念: GIL锁是 CPython 解释器中的一把互斥锁。 作用:无论 CPU 有多少个核心,在某一时刻,只允许同一个进程中的一个线程去执行 Python 代码。 结论:CPython 解释器中的多线程模型,本...
16. 多进程 vs 多线程,该如何选择?
CPU密集型任务,更适合用多进程。 import time from concurrent.futures import ProcessPoolExecutor, ThreadPoolExecutor # 准备一个 CPU 密集型任务 def cpu_task(n): print(f'任务{n}开始了'...







