multiprocessing.Pool的替代品。
项目描述
Steam工厂
multiprocessing的Pool的替代品,提供更强大的功能。允许异步运行通用的Python函数。
示例用法
首先,我们需要一个执行某些操作的功能。在这种情况下,它只是等待一秒钟。
import time
def do_nothing():
time.sleep(1)
print('Sleeping done') # If you want some feedback..
为了并行运行此功能,我们需要一个 Factory 实例。
from steamfactory import Factory
# Create a factory, running up to 4 tasks concurrently
factory = Factory(size=4)
一切准备就绪,我们可以安排一些异步函数执行
for _ in range(4):
factory.run(do_nothing)
一秒钟后,你应该会看到四个“Sleeping done”消息同时打印出来。
如果您在脚本中使用此功能,并且需要主进程等待所有任务执行后再终止(这意味着任务将会丢失),请记住调用 shutdown() 方法
factory.shutdown()
获取反馈
如何从任务中获取“反馈”通常很大程度上取决于应用程序。很多时候你甚至不需要关心函数的返回值,你只需要确保某些操作被执行。其他时候,值可能很大,或者所需的保留时间可能不同。
该库目前没有提供任何将结果返回给调用者的方式,但你可以轻松地做些像这样的事情
import time
from multiprocessing import Manager
from steamfactory import Factory
_mgr = Manager()
results = _mgr.dict() # Shared between processes
def addup(a, b):
time.sleep(1)
results[(a, b)] = a + b
# Create a factory, running up to 4 tasks concurrently
factory = Factory(size=4)
# Let's schedule some tasks
factory.run(addup, 1, 2)
factory.run(addup, 3, 4)
factory.run(addup, 5, 6)
factory.run(addup, 7, 8)
factory.shutdown()
# Now, results contains all the results (after a 1s processing
# time)
变更日志
0.1
初始发布,实现运行函数的异步功能。
项目详情
下载文件
下载适合您平台文件的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分布
SteamFactory-0.1.tar.gz (3.9 kB 查看哈希值)
构建版本
SteamFactory-0.1-py3-none-any.whl (5.7 kB 查看哈希值)
SteamFactory-0.1-py2-none-any.whl (5.7 kB 查看哈希值)
关闭
SteamFactory-0.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c058c6eb59c01ae18dab48362c0d4b055995b5764318490f2acdb84a10795cd |
|
MD5 | 3bef57fb142826ffcf5bbc32c92d2a5a |
|
BLAKE2b-256 | f30e25692f609584b073e52d40e376f857928dcc0f44e932ae98d770fc3c2fb6 |
关闭
SteamFactory-0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 955d1eb83f132ac011a8495b9b920e4418f19eaf581ace904e48bbe167255234 |
|
MD5 | 37572e039607a44be11ffacf1050dd14 |
|
BLAKE2b-256 | 3cd71d36ed221cb0193ca2f5de000003510b7160fe52eea59b5b5b0d4f58a2b9 |
关闭
SteamFactory-0.1-py2-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6dd859e2038604a4394aa94b553c438a6cf3204a9ba98603cd3b2939283e19bc |
|
MD5 | d3158d0ed4d4c82c7994279e8951cff1 |
|
BLAKE2b-256 | b79d5834f47a9be60fff01b22661f6ff2d5c3da110697041ecda334fdb7e4dd3 |