Lar*_*rry 11 python multicore multiprocess
请考虑如下课程:
class Foo:
def __init__(self, data):
self.data = data
def do_task(self):
#do something with data
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我有一个包含几个Foo类实例的列表.目的是执行do_task所有Foo对象.第一个实现很简单:
#execute tasks of all Foo Object instantiated
for f_obj in my_foo_obj_list:
f_obj.do_task()
Run Code Online (Sandbox Code Playgroud)
我想利用多核架构共享for我机器的4个CPU之间的循环.
最好的方法是什么?
tim*_*rau 17
您可以在多处理模块中使用进程池.
def work(foo):
foo.do_task()
from multiprocessing import Pool
pool = Pool()
pool.map(work, my_foo_obj_list)
pool.close()
pool.join()
Run Code Online (Sandbox Code Playgroud)
我想参考一篇由Ryan W. Smith撰写的文章:Python中的多核和分布式编程,而不是通过所有的多线程/多核基础知识.
他将详细介绍如何利用多个内核并使用这些概念.但是如果你不熟悉一般的多线程概念,请小心这些东西.
功能编程还允许您自定义每个核心的算法/功能.
| 归档时间: |
|
| 查看次数: |
46497 次 |
| 最近记录: |