Python3多任务之多进程

一、概念
1.1、多任务概念

多任务是指在同一时间内执行多个任务,如Windows下打开QQ的同时打开浏览器

多任务可以提高程序的执行效率,提高CPU利用率

1.2、并发(多任务表现形式一)

一段时间内交替执行多个任务,并发一般出现在任务数量大于CPU的核心数(单核)

1.3、并行(多任务表现形式二)

一段时间内真正的同时一起执行多个任务,并行一般出现在任务数量小于CPU的核心数(多核)

二、多任务之多进程
2.1、进程概念

进程(process)是资源分配的最小单位,是操作系统进行资源分配和调度运行的基本单位,通俗理解:一个正在运行的程序就是一个进程。例如QQ、微信等
一个运行的程序至少有一个进程

2.2、多进程的作用

使用多进程可以实现多任务编程,提升程序执行效率

2.3、创建进程

步骤:
1、导入进程包
import multiprocessing
2、通过进程类创建进程对象
processObject = multiprocessing.Process(target = 任务名)

参数名 说明
target 执行的目标任务名,此处指函数名(也即方法名)
name 进程名,一般不需要设置
group 进程组,目前只能使用None

3、启动进程执行任务
processObject.start()

"""
进程创建
1、导入进程包
import multiprocessing
2、通过进程类创建进程对象
processObject = multiprocessing.Process()
3、启动进程执行任务
processObject.start()
"""
# 1、导入进程包
import multiprocessing , time

def func_A():
    for i in range(3):
        print("func_A被执行")
        time.sleep(0.5)

def func_B():
    for i in range(3):
        print("func_B被执行")
        time.sleep(0.5)

if __name__ == "__main__":

    # 2、通过进程类创建进程对象
    # target指定进程执行的函数名
    process_func_A = multiprocessing.Process(target=func_A())
    process_func_B = multiprocessing.Process(target=func_B())

    # 3、启动进程执行任务
    process_func_A.start()
    process_func_B.start()

执行结果:

func_A被执行
func_A被执行
func_A被执行
func_B被执行
func_B被执行
func_B被执行
2.5、进程执行带有参数的任务
参数名 参数说明
args 以元组的方式给执行任务传参,当元组仅有一个参数时,元组最后必须加逗号,且元组参数的顺序必须与任务函数参数的顺序保持一致
kwargs 以字典的方式给执行任务传参,字典参数顺序可变,字典key的名称就是任务函数参数的名称

通过args元组方式传参:
sub_process = multiprocessing.Process(target = 函数名 , args = (参数1 , 参数2 , ))
通过kwargs字典方式传参:
sub_process = multiprocessing.Process(target = 函数名 , kwargs = {key1:value1 , key2:value2})

"""
进程执行带有参数的任务
1、导入进程包
import multiprocessing
2、通过进程类创建进程对象
processObject = multiprocessing.Process()
3、启动进程执行任务
processObject.start()
"""
# 1、导入进程包
import multiprocessing , time

def func_A(counter , name):
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值