参考资料:
黑马程序员python多线程编程教程
1. 概念
-
多任务:同一时间执行多个任务。
①并发:一段时间交替执行多个任务。
②并行:同时一起执行多个任务。 -
进程:一个正在运行的程序。
①操作系统需要为每个进程分配资源。
②可创建的进程数量有限。 -
线程: 是程序执行的最小单元。
-
对比
①关系:线程依附于进程,一个进程可能有多个线程。
②区别:创建进程的开销比线程要大,进程是操作系统资源分配的基本单元,线程是CPU调度的基本单位。线程不能独立运行。
③优缺点:进程可以用多核,但资源开销大且进程数量有限。线程资源开销小,但不能使用多核。
2. 多进程完成多任务
(1)进程创建步骤
- 创建进程对象:创建进程时必须指定目标任务名,也就是函数名。
(2)进程执行带参数的任务
(3)获得进程编号
(4)注意点
-
主进程会等待所有子进程执行结束后再结束:主进程并不是不再执行了,而是不会再子进程结束前结束。
-
设置守护子进程:一旦主进程结束,子进程自动销毁。
进程对象.daemon = true;
3. 多进程实战案例
(1)需求分析
实现一个高并发的多任务拷贝器。
(2)代码
import os
import multiprocessing
def copy_file(file_name, source_dir, dest_dir):
# 1. 拼接文件路径和文件名
source_path = source_dir +