<p>使用下面的代码,您可以暂时停止监视,也可以完全退出监视</p>
<pre><code>import threading
import time
class Monitor(threading.Thread):
def __init__(self):
self.b_quit = False
self.monitor = True
self.event = threading.Event() # Whenever this event is set, monitoring should happen
self.event.set() # By default turn on monitoring
threading.Thread.__init__(self)
def run(self):
i = 0
while self.monitor:
eventSet = self.event.wait()
if not self.monitor or self.b_quit:
break
print(" Thread is active: {}".format(i), end='\r')
i += 1
def begin(self):
self.event.set()
def halt(self):
self.event.clear()
def quit(self):
self.event.set()
self.b_quit = True
obj = Monitor()
obj.start() # Launches a separate thread which can be controlled, based upon calls to begin, halt, and quit
time.sleep(1)
print("Trigger halt from main thread")
obj.halt() # Only paused the monitoring
time.sleep(1)
print("Trigger resume from main thread")
obj.begin() # Resumes the monitoring
time.sleep(1)
print("Trigger quit from main thread")
obj.quit() # Exits the thread completely
</code></pre>