快速实现python多进程和多线程(标准库)multiprocessing.Pool,treading.Thread

快速实现python多进程和多线程(标准库)

首先要说明python的threading类是单核多线程,如果要用到多核,则需要用到multiprocessing类。

多核多进程并发
首先定义一个测试函数,这里定义为一个死循环,然后控制死循环运行时间的函数。

def job(lastingTime):  # 测试多进程
    a = time.time()
    while True:
        if time.time() - a > lastingTime:
            print(time.time() - a)
            break

再提一句

‘’’
在Windows上要想使用进程模块,就必须把有关进程的代码写在当前.py文件的if name == ‘main’ :语句的下面,
才能正常使用Windows下的进程模块。Unix/Linux下则不需要。
‘’’

运用多进程
if __name__ == '__main__':
    useCount = mp.cpu_count() - 3	# cpu核数
    pool = mp.Pool(useCount)	# 创建几个进程
    lastTime = [10] * useCount	# map对象,这里是秒数
    result = pool.map(job, lastTime)
    pool.close()	# 关闭进程池,不再接受新的进程
    pool.join()		# 主进程阻塞等待子进程的退出

这样可以看到使用情况
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值