python-多任务之多进程

多进程–multiprocessing

multiprocessing 是一个支持使用与 threading 模块类似的 API 来产生进程的包。 multiprocessing包同时提供了本地和远程并发操作,通过使用
子进程而非线程有效地绕过了 全局解释器锁。 因此,multiprocessing 模块允许程序员充分利用给定机器上的多个处理器。 它在 UnixWindows
上均可运行。
multiprocessing 模块还引入了在 threading 模块中没有的API。一个主要的例子就是 Pool 对象,它提供了一种快捷的方法,赋予函数并行化处理一系
列输入值的能力,可以将输入数据分配给不同进程处理(数据并行)。

import time
from multiprocessing import Process
import os

print(f"主进程开始:{round(time.time(), 3)}")
print(f"主进程ID:{os.getpid()}")


def handler(x):
    print(f"当前时间:{round(time.time(), 3)}")
    print(f"当前子进程ID:{os.getpid()}")
    print(f"当前子进程父进程ID:{os.getppid()}")
    time.sleep(2)
    print(x * x)


p = Process(target=handler, args=(5,))
p1 = Process(target=handler, args=(6,))
p2 = Process(target=handler, args=(7,))
p3 = Process(target=handler, args=(8,))

p.start()
p1.start()
p2.start()
p3.start()

print(f"主进程结束:{round(time.time(), 3)}")
执行结果:
主进程开始:1598431859.241
主进程ID:79189
当前时间:1598431859.246
当前子进程ID:79190
当前子进程父进程ID:79189
主进程结束:1598431859.246
当前时间:1598431859.246
当前子进程ID:79191
当前子进程父进程ID:79189
当前时间:1598431859.247
当前子进程ID:79192
当前子进程父进程ID:79189
当前时间:1598431859.248
当前子进程ID:79193
当前子进程父进程ID:79189
25
36
49
64
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值