【发布时间】:2020-09-28 09:31:37
【问题描述】:
我有一个程序可以遍历给定文件夹中的所有图片并返回一个数值:
for filename in os.listdir(image_directory):
if filename.endswith(".jpg") or filename.endswith(".png"):
if __name__ == '__main__':
q = Queue()
p = Process(target=analysis_main, args=(q,os.path.join(image_directory, filename), points_path,
real_points_path,transform_path, inverse_path, lane,))
p.start()
dist = q.get()
p.join()
data.append([filename, dist])
因为在分析一张图片后会存储一些不需要的内存,所以我必须使用 修复了问题并且程序运行良好的多处理模块,但仅当我不使用队列并且仅打印从分析(dist)中获得的结果时。当我使用队列时,程序只分析两张图片然后停止,但它没有被杀死。 我现在正在解决这个问题一段时间,真的不知道该怎么办。
【问题讨论】:
-
您确定子进程实际上将任何东西放在队列中吗?
-
是的,因为如果我尝试在只有两张图片的文件夹上运行它可以正常工作,当它到达第三张图片时就会出现问题。