threading
Mathieu Prevot
mathieu.prevot at ens.fr
Thu Aug 14 05:30:44 EDT 2008
2008/8/13 Parimala <parimala.b 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.
>
> import threading
> 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
More information about the Python-list
mailing list