I'm a little confused about threading in Python. Here is a sample class I've written for monitoring for events. Included in the comments are a couple of questions, specifically:
(1) can I use super() in the constructor, or is direct call to base class preferred?
(2) do I need to sleep in the run() method? If so, why? It seems to improve my programs responsiveness
(3) what happens after run() finishes-- does the thread die, get suspended, go away? Should I try to force the thread into one of these states, and if so how?
Any help is appreciated!
Thanks,
Marcus
class Monitor(threading.Thread):
def __init__(self):
threading.Thread.__init__(self) # would super() also work here? which is preferred
self.undetected = True # presumably, when the event occurs it sets this attribute to False
def run(self):
print "looking for event"
while self.undetected is True:
time.sleep(0.1) # another minor point: why do I need to sleep here?
self.processEvent()
# what happens here-- does the thread die?
def processEvent(self):
print "yeah-- event detected"
_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
