我是python和watchdog的新手,并且被quickstart示例搞糊涂了。在这个例子中,有一段代码如下:
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print('Error')
self.observer.join()
我找不到关于start
,stop
和join
方法的任何文档。另外,虽然知道while循环内部尝试除了可能使观察者每5秒运行一次,但我不明白它是如何工作的?
有人可以解释一下这三种方法做了什么以及循环如何工作?
答案 0 :(得分:1)
更新:我根据@Amit Gupta的帖子更正了我的答案。
经过一番研究后,我发现所有三种方法都属于threading.Thread对象。
self.observer.start()
创建一个新主题,
While True:
time.sleep(1)
使主线程保持运行
当程序停止时,self.observer.stop()
在线程终止之前做了一些工作。 (@Amit Gupta)
self.observer.join()
需要正确结束线程“它阻止你正在进行调用的线程,直到(self.observer
)完成。”正如Erik Allik在Use of threading.Thread.join()
答案 1 :(得分:0)
threading.Thread没有为stop()提供任何实现。阅读here。 这里的Stop()特定于Observer,在这个示例代码中,它将在接收异常时停止线程。 你写的其他东西是正确的。