一个简单的多处理函数池

pytaskpool的Python项目详细描述


PytaskPool

一个简单的多进程函数池,用于创建结果生成器

pytaskpool使用python多处理模块

pytaskpool提供了一种在进程池(而不是线程池)中执行python函数的简单方法,可以使用所有cpu 核心。然后可以按顺序(通过生成器方法)获得函数结果。

下载和文档:
http://pypi.python.org/pypi/pytaskpool
源代码和开发:
https://github.com/govlog/pytaskpool
问题:
christopher.amiaud@gmail.com

安装

python索引包(pip)中提供了pytaskpool, 可以运行以下命令安装它:

$ pip install pytaskpool

或者用这样的git:

$ git clone https://github.com/govlog/pytaskpool
$ cd pytaskpool
$ sudo python setup.py install

或者甚至在http:https://github.com/govlog/pytaskpool/archive/master.zip

用法

此示例代码将使用8个进程池同时启动8个具有不同参数的函数。 所有已启动函数返回的结果将通过get_sorted_results()方法获取,该方法是一个生成器 按顺序返回函数结果。

例外的执行时间应该在1秒左右。

示例代码:

import pytaskpool as tp
from time import sleep

def my_func(x):
    sleep(1)
    return [x ** x]

mypool = tp.TaskPool([], 8)

for r in range(8):
    mypool.launch(my_func, r)

unsorted = [r for r in mypool.get_unsorted_results()]
sorted = [r for r in mypool.get_sorted_results()]

print "unsorted :",unsorted
print "sorted   :",sorted

终端输出应如下所示:

$ time python test.py
unsorted : [[1], [4], [1], [3125], [823543], [256], [27], [46656]]
sorted   : [[1], [1], [4], [27], [256], [3125], [46656], [823543]]

real    0m1.031s
user    0m0.858s
sys     0m0.193s

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java得到的分数是Android屏幕大小的25%   爪哇杰克逊。数据绑定。JsonNode()在null字段上返回true(不应该返回)   java使用改型2获取和获取未知数据集   java Play框架:使用WS将图像发布到imageshack   高效eclipse的java最佳设置   swing KeyListener Java   无法解析java链表   java ListView内存问题   java在创建重载构造函数、实例化对象时遇到问题   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   swing在Java中使用矩阵和JButton设计扑克UI   SpringREST异常无法读取JSON:无法反序列化java实例。lang.从START_对象中取出的字符串   java如何消除JPanel的透明度   为什么“i”和“i”在Java for循环中有相同的行为?   java静态工厂方法   java在不使用Stringbuilder的情况下将SQLite数据设置为JsonObject类   java能否为标题“DispositionNotificationTo”分配2个或更多地址?   java无法打开openclinica