getting a thread out of sleep
mark
rkmr.em at gmail.com
Wed Feb 21 11:23:21 EST 2007
On 20 Feb 2007 21:26:18 -0800, placid <Bulkan at gmail.com> wrote:
> On Feb 21, 4:21 pm, "placid" <Bul... at gmail.com> wrote:
> > On Feb 21, 4:12 pm, mark <rkmr... at gmail.com> wrote:
> > > On 20 Feb 2007 20:47:57 -0800, placid <Bul... at gmail.com> wrote:
> > > > On Feb 21, 3:08 pm, mark <rkmr... at gmail.com> wrote:
> > > > > Right now I have a thread that sleeps for sometime and check if an
> > > > > event has happened and go back to sleep. Now instead I want the thread
> > > > > to sleep until the event has occured process the event and go back to sleep
> >
> > > > > class eventhndler(threading.Thread):
> > > > > def __init__(self):
> > > > > threading.Thread.__init__(self)
> > > > > def run(self):
> > > > > while True:
> > > > > time.sleep(SLEEPTIME)
> > > > > ''''do event stuff'''
> >
> > > > The way i would do this is by using an threading.Event (
> > > >http://docs.python.org/lib/event-objects.html)
> >
> > > > <code>
> >
> > > > class eventhandler(threading.Thread):
> > > > def __init__(self):
> > > > threading.Thread.__init__(self)
> > > > self.event = threading.Event()
> > > > def run:
> > > > while True:
> > > > # block until some event happens
> > > > self.event.wait()
> > > > """ do stuff here """
> > > > self.event.clear()
> > > > </code>
> >
> > > > the way to use this is to get the main/separate thread to set() the
> > > > event object.
> >
> > > Can you give an example of how to get the main threead to set teh event object?
> > > this is exactly what i wanted to do!
> > > thanks a lot!
> > > mark>
> oops I've miss-typed the thread variable name the following should
> work
>
> <code>
> if __name__ == "__main__":
> evtHandlerThread = eventhandler()
> evtHandlerThread.start()
>
> # do something here #
> evtHandlerThread.event.set()
>
> # do more stuff here #
> evtHandlerThread.event.set()
>
> </code>
Can I have the same thread process two or more events? Can you tell
how to do this? The code you gave is waiting on one event right. How
can I do it for more events?
thanks a lot!
mark
More information about the Python-list
mailing list