threading
Rhamphoryncus
rhamph at gmail.com
Thu Aug 14 14:52:10 EDT 2008
On Aug 14, 3:30 am, "Mathieu Prevot" <mathieu.pre... at ens.fr> wrote:
> 2008/8/13 Parimala <parimal... at accord-soft.com>:
>
>
>
> > Hello,
>
> > I am using python2.5.1 version to run my test scripts. I want to use
> > 'threading' module in my tests. As a startup program, I had run the
> > following one.
>
> > importthreading
> > import sys
> > import time
>
> > def hello():
> > i=0
> > try:
> > while i<10:
> > print "hi"
> > time.sleep(1)
> > i+=1
> > except KeyboardInterrupt:
> > print 'KeyboardInterrupt'
> > raise KeyboardInterrupt
>
> > try:
> > thread=threading.Thread(target=hello,args=())
> > thread.start()
> > except KeyboardInterrupt:
> > print 'KeyboardInterrupt'
> > raise KeyboardInterrupt
>
> > once program starts, problem is..
> > I am not able to abort the thread using (CTRL+C) KeyboardInterrupt. While
> > running if I press CTRL+C, it won't generate any exception until the end of
> > the execution. Once the execution gets over, it will give "Exception
> > exceptions.KeyboardInterrupt in <module 'threading' from
> > 'C:\python25\lib\threading.py'> ignored" this message and exits.
>
> > I had gone through some documents, it says if a thread is joined with
> > .join() method then we can't stop that process until it releases the lock
> > what it acquired. But in the above program I didn't use .join() method but
> > still I am not able to abort the thread.
>
> > Could you please suggest me how can I abort the thread at any point in time
> > using CTRL+C.
>
> Hi,
>
> a terminate method is given here:http://sebulba.wikispaces.com/recipe+thread2
>
> so you can terminate the thread by:
>
> (...)
> t.start()
> (...)
>
> while True:
> try:
> #some code
> except KeyboardInterrupt:
> t.terminate()
> break
>
> Mathieu
(For some reason the OP hasn't come through to groups.google.com..
odd)
Note that it won't interrupt any blocked I/O, which is often what you
need the most. If your threads are CPU-bound you can simply have them
check a flag and exit if it becomes True.
More information about the Python-list
mailing list