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