python多进程multiprocessing(共享字典)

一,线程与进程的区别

纲领:进程是资源分配的最小单位,线程是CPU调度的最小单位

听老师傅说,在python上线程作用不大,最好还是使用多进程。

二,简单使用multiprocessing

检测一下电脑性能如何:

import multiprocessing

print('子进程的列表:{}'.format(multiprocessing.active_children()))
print('电脑的CPU数量:{}'.format(multiprocessing.cpu_count()))
print('现在运行的进程:{}'.format(multiprocessing.current_process()))

简单使用一下多进程: 

from multiprocessing import Process

def fun(arg):
    print('hellow world:', arg)

if __name__ == '__main__':
    # 通过对Process类进行实例化创建一个子进程
    p = Process(target=fun1, args=("balala",))
    p.start()# 进程开始
    p.join() # 进程等待p停止,才执行下一行代码
    print('end')

三,多次调用一个函数

from multiprocessing import Process

def fun(arg):
    print('hellow world:', arg)

if __name__ == '__main__':
    # 通过对Process类进行实例化创建一个子进程
    pros = []
    for i in range(4):
        p = Process(target=fun1, args=("balala",))
        p.start()# 进程开始
        pros.append(p)
    for pro in pros:
        pro.join() # 进程等待p停止,才执行下一行代码
    print('end')

四,多进程共享字典

from multiprocessing import Process, Manager

def fun(arg):
    print('hellow world:', arg)
    ans[arg] = arg

if __name__ == '__main__':
    # 通过对Process类进行实例化创建一个子进程
    pros = []
    ans = Manager().dict()
    for i in range(4):
        p = Process(target=fun1, args=("balala",))
        p.start()# 进程开始
        pros.append(p)
    for pro in pros:
        pro.join() # 进程等待p停止,才执行下一行代码
    print('end')
    print(ans)

应该不会报错吧?!?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值