python线程计算负载
我需要一个进程来监视一个目录,如果有一个新文件,请处理该文件。所以我基本上实现如下 我的问题很简单:在监视时,我需要继续使用无限循环(python线程计算负载,python,multithreading,Python,Multithreading,我需要一个进程来监视一个目录,如果有一个新文件,请处理该文件。所以我基本上实现如下 我的问题很简单:在监视时,我需要继续使用无限循环(While True)执行if检查。计算量是多少?严重吗?或者是否有更好的方法(例如,监视新文件时采用事件驱动的方法) 有关信息,请假设另一端正在运行一个巨大的进程,该进程生成要监视的文件,do\u analyze大约需要15分钟。) 您需要在mimimum(可能是python版本)上添加操作系统。大多数操作系统允许在目录中添加某种类型的监视文件更改,例如创建。例
While True
)执行if
检查。计算量是多少?严重吗?或者是否有更好的方法(例如,监视新文件时采用事件驱动的方法)
有关信息,请假设另一端正在运行一个巨大的进程,该进程生成要监视的文件,do\u analyze
大约需要15分钟。)
您需要在mimimum(可能是python版本)上添加操作系统。大多数操作系统允许在目录中添加某种类型的监视文件更改,例如创建。例如windows:。回答您的问题-是的,它很昂贵,需要100%的单处理器。您可以使用filesystem inotify,例如,您可以使用此库实现它:谢谢!那么如何计算
sleep()
函数呢?如果我间歇性地检查,比如If filename:do_analyze(filename);其他:睡眠(10)
,会更好吗?
# a thread monitoring the result directory every 10 min.
# if there is a new file, push in the queue.
from treading import Timer
file_checker = Checker(some_directory)
timer = Timer(10*60, file_checker.check())
timer.start()
while True:
filename = file_checker.pop()
if filename:
do_analyze(filename)