【发布时间】:2011-12-09 08:00:17
【问题描述】:
我的项目需要多个线程从同一个文件夹中读取文件。该文件夹有传入文件,该文件只能由这些线程中的任何一个线程处理。稍后,这个文件读取线程,处理完文件后将其删除。
在第一个答案后编辑:我不想要一个线程负责读取文件名并将这些名称提供给其他线程,以便他们可以读取它。
在 python 中是否有任何有效的方法来实现这一点?
【问题讨论】:
-
为什么不想使用单个线程将输入文件名传递给其他线程?
-
如果我这样做,这个输入读取线程需要充当调度程序,将文件名提供给空闲线程。相反,如果有什么我已经可以使用的东西可以帮助我实现这一目标,那就太好了。
-
@Sujit 你不会找到不依赖工作队列模型的东西。你为什么不想使用它?我可以向你保证,这不会是瓶颈——磁盘访问会。
-
@Sujit:你可以组织你的代码,输入线程只调用
queue.put(filename),而不是一个新的文件名可用(pyinotify可能在这里有所帮助)。工作线程只是循环调用queue.get(filename)。输入线程对工作线程一无所知,反之亦然。
标签: python linux multithreading