mirror of
https://github.com/python/cpython.git
synced 2025-09-17 22:20:23 +00:00
Add advice on choosing between scheduler and threading.Timer().
This commit is contained in:
parent
4e06b8a86f
commit
d0ab014b5e
1 changed files with 25 additions and 0 deletions
|
@ -41,6 +41,31 @@ Example::
|
||||||
From print_time 930343700.273
|
From print_time 930343700.273
|
||||||
930343700.276
|
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:
|
.. _scheduler-objects:
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue