一个简单的多处理函数池

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中将字符串转换为音频输入   java如何使用Spring Boot RestTemplate解组json列表   计算机上C++ OpenCV项目转换为OpenCV Android的java步骤   Java Spring Telegraf数据表不工作   openurlconnection与connect之间的java差异?   java Solr字段搜索、通配符和转义字符   java如何使用DLFolderLocalServiceUtil类的getFolders()方法?   尝试用Java编写文件   java连续双缓冲解决方案不起作用   两个数组的Java乘积   java Jackson,如何正确编写自定义反序列化程序   java将布尔标志按一定顺序排列以获得更好的性能是否有意义   java Vaadin无缓冲网格无法关闭   java在MySQL中以同一用户身份同时从不同客户端登录安全吗?   java如何使用安卓asynchttp库   java无法在Android中使用AlarmManager停止服务   java在Hibernate的XML配置文件中指定默认值   Spring启动应用程序中的java内存SQLITE不工作   Java代码无法写入文本文件,