How to run a repeating timer every n minutes?
mk
mrkafk at gmail.com
Thu Oct 29 12:03:00 EDT 2009
Frank Millman wrote:
> class Timer(threading.Thread):
> def __init__(self):
> threading.Thread.__init__(self)
> self.event = threading.Event()
>
> def run(self):
> while not self.event.is_set():
> """ The things I want to do go here. """
> self.event.wait(number_of_seconds_to_wait)
>
> def stop(self):
> self.event.set()
>
> In your main program -
> - to start the timer
> tmr = Timer()
> tmr.start()
>
> - to stop the timer
> tmr.stop()
>
> It is easy to extend this by passing the number_of_seconds_to_wait, or a
> function name to be executed, as arguments to the Timer.
I'm newbie at threading, so I'm actually asking: should not method like
stop() be surrounded with acquire() and release() of some threading.lock?
I mean, is this safe to update running thread's data from the main
thread without lock?
Regards,
mk
More information about the Python-list
mailing list