python - [07] 多进程

题记部分

 

001 || 进程的创建步骤

a.导入进程包

import multiprocessing

b.通过进程类创建进程对象

进程对象 = multiprocessing.Process(target=任务名)
参数名 说明
target 执行的目标任务名,这里指的是函数名(方法名)
name 进程名,一般不用设置
group 进程组,目前只能使用None

c.启动进程执行任务

进程对象.start()

 

进程创建与启动的代码

# 创建子进程
sing_process = multiprocessing.Process(target=sing)
# 创建子进程
dance_process = multiprocessing.Process(target=dance)
# 启动进程
sing_process.start()
dance_process.start()

 

002 || 单任务 vs 多线程

单任务

import time

def sing():
    for i in range(3):
        print("唱歌...")
        time.sleep(0.5)

def dance():
    for i in range(3):
        print("跳舞...")
        time.sleep(0.5)

if __name__ == '__main__':
    sing()
    dance()

先执行sing(),后执行dance(),每次执行耗时0.5s,共计3s

PS E:\WorkSpace\test> & D:/Environment/Python/Python312/python.exe e:/WorkSpace/test/thread/01-单任务.py
唱歌...
唱歌...
唱歌...
跳舞...
跳舞...
跳舞...

 

多任务

# 1. 导入进程包
# 2. 使用进程类创建进程对象
# 3. 使用进程对象启动进程执行指定任务
import multiprocessing
import time


def sing():
    for i in range(3):
        print("唱歌...")
        time.sleep(0.5)

def dance():
    for i in range(3):
        print("跳舞...")
        time.sleep(0.5)

if __name__ == '__main__':
    # 使用进程类创建进程对象
    # target参数指定进程执行的函数名
    sing_process = multiprocessing.Process(target=sing)
    dance_process = multiprocessing.Process(target=dance)

    # 使用进程对象启动进程执行指定任务
    sing_process.start()
    dance_process.start()
    

sing()和dance()同时执行,耗时共1.5s

PS E:\WorkSpace\test> & D:/Environment/Python/Python312/python.exe e:/WorkSpace/test/thread/02-使用多进程实现多任务.py
唱歌...
跳舞...
唱歌...
跳舞...
唱歌...
跳舞...

 

 

003 || 进程执行带有参数的任务

 

参数 说明
args 以元组的方式给执行任务传参
kwargs 以字典方式给执行任务传参

 

args参数的使用

# target: 进程执行的函数名
# args: 表示以元组的方式给函数传参
sing_process = multiprocessing.Process(target=sing, args=(3,))
sing_process.start()

 

kwargs参数的使用

# target: 进程执行的函数名
# kwargs: 表示以字典的方式给函数传参
dance_process = multiprocessing.Process(target=dance,kwargs={"num": 3})
# 启动进程
dance_process.start()

 

 

 

 

 

 

 

 

posted @ 2025-04-18 20:56  HOUHUILIN  阅读(12)  评论(0)    收藏  举报