performance – Real-time interrupts in Python
If a single event is to be handled, then the easiest way is to use the
signal framework which is a standard module of Python.
However, if we need a fully-fledged scheduler, then we have to resort to another module:
sched. Here is a pointer to the official documentation. Please be aware, though, that in multi-threaded environments
sched has limitations with respect to thread-safety.
Another option is the Advanced Python Scheduler, which is not part of the standard distribution.
How to delay several function calls by known numbers of seconds depends on your needs e.g., if a time it takes to run a function is negligible compared to the delay between the calls then you could run all functions in a single thread:
#!/usr/bin/env python from __future__ import print_function from Tkinter import Tk root = Tk() root.withdraw() # dont show the GUI window root.after(1000, print, foo) # print foo in a second root.after(0, print, bar) # print bar in a jiffy root.after(2000, root.destroy) # exit mainloop in 2 seconds root.mainloop() print(done)
It implements yours I do not want the interrupts to interrupt each other either because the next callback is not called until the previous one is complete.