您的位置:首页 > 新闻 > 资讯 > python多进程multiprocessing(共享字典)

python多进程multiprocessing(共享字典)

2025/2/24 6:55:56 来源:https://blog.csdn.net/W_extend/article/details/141385229  浏览:    关键词:python多进程multiprocessing(共享字典)

一,线程与进程的区别

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

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

二,简单使用multiprocessing

检测一下电脑性能如何:

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

简单使用一下多进程: 

from multiprocessing import Processdef 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 Processdef 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, Managerdef fun(arg):print('hellow world:', arg)ans[arg] = argif __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)

应该不会报错吧?!?

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com