【发布时间】:2014-09-03 19:37:08
【问题描述】:
我刚开始使用 Python 3 中的库 concurrent.futures 将许多函数应用于图像列表,以便处理这些图像并重塑它们。
函数是resize(height, width)和opacity(number)。
另一方面,我有 images() 产生类似文件的对象的函数,
所以我尝试了这段代码来并行处理我的图像:
import concurrent.futures
From mainfile import images
From mainfile import shape
def parallel_image_processing :
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
future = executor.submit(images)
for fileobject in future.result() :
future1 = executor.submit( shape.resize, fileobject, "65","85")
future2 = executor.submit( shape.opacity, fileobject, "0.5")
有人能告诉我我是否走在正确的道路上吗?
【问题讨论】:
-
你有什么问题?您没有说明当前代码有任何问题。除了告诉你那不是有效的 Python 语法,你还能期待什么?
-
您能否更具体地了解
images返回的内容?它只是类文件对象的打开句柄列表吗?您可能会遇到跨两个函数并行读取这些类文件对象的问题。 -
@Bakuriu 我的问题是在这种情况下使用 python 并行处理图像是否是正确的方法
-
@dano 这是 images() 返回的内容:yield open(os.path.join(image_dir[0], filename), 'rb')
-
@user1578720 那么它是一个生成器吗?
resize和opacity是否只希望将一个类似文件的对象传递给它们,还是希望有一个可迭代对象(如生成器)?
标签: python multithreading python-3.x future concurrent.futures