Add advice on choosing between scheduler and threading.Timer().

This commit is contained in:
Raymond Hettinger 2008-01-17 22:27:49 +00:00
parent 4e06b8a86f
commit d0ab014b5e
1 changed files with 25 additions and 0 deletions

View File

@ -41,6 +41,31 @@ Example::
From print_time 930343700.273
930343700.276
In multi-threaded environments, the :class:`scheduler` class has limitations
with respect to thread-safety, inability to insert a new task before
the one currently pending in a running scheduler, and holding-up the main
thread until the event queue is empty. Instead, the preferred approach
is to use the :class:`threading.Timer` class instead.
Example::
>>> import time
>>> from threading import Timer
>>> def print_time():
... print "From print_time", time.time()
...
>>> def print_some_times():
... print time.time()
... Timer(5, print_time, ()).start()
... Timer(10, 1, print_time, ())
... print time.time() # executes before the time-delay events
...
>>> print_some_times()
930343690.257
930343690.301
From print_time 930343695.274
From print_time 930343700.273
.. _scheduler-objects: