一、多任务
1.1 多任务:同一时间执行多个任务,
eg:我们可以 或者同时打开多个窗口
1.2 原理:利用CPU的资源,提高程序的执行效率
1.3 多任务表现形式
并发:在一段时间内交替执行多个任务
eg:对于单核CPU处理多任务,操作系统轮流让各个任务交替执行
并行:在一段时间内真正的同时一起执行多个任务,任务数量小于或等于cpu核心数
eg:对于多核cpu处理多任务,每个cpu执行每个任务
在python中,如果想实现多任务可以使用多进程
二、进程
2.1 进程:是资源分配的最小单位,它是操作系统进行资源分配(CPU,内存,磁盘,网络)和调度运行的基本单位,一个程序就是一个进程
eg:正在运行的微信等就是一个进程(进程:重点在运行)
2.2 多进程:使用多进程可以实现多任务的编程
# 这就是一个主进程,先执行task1,在执行task2
def task1():
print("小可爱")
def task2():
print("小宝贝")
task1()
task2()
对于上述情况,假设代码多起来,必定浪费时间,如果我们可以让这些函数同时运行,这将会大大提升代码的效率,由此可以在主进程里创建多个子进程
2.3 如何创建其他进程
2.3.1 进程创建的步骤:
(1)导包
import multiprocessing
# from multiprocessing import Process
(2)通过进程类创建进程对象
对象 = multiprocessing.Process()
# 对象 = Process()
(3)启动进程执行任务
对象.start( )
2.3.2 通过进程类创建进程对象
对象 = multiprocessing.Process(target=任务名)
target:指定进程执行的 函数名/方法名
name:进程名,一般不用设置(py会默认Process_1、2、3…)
group:进程组,目前只能使用None(一般不设置)
2.3.3 给指定任务传参
args:以元组的方式给执行任务传参(要加,)元组传参按顺序
kwargs:以字典的方式给执行任务传参 字典传参按key
# 传1个参数
import multiprocessing
import time
def task1(n):
for i in range(n):
time