def function(message):
if 'START' in message:
timer = 10
#start a thread which sleeps for 'timer' and prints "TIMER EXPIRED"
if 'STOP' in message:
#check if timer is still running, terminate thread if yes (print "TIMER STOPPED")
def main():
function('START')
time.sleep(random_time)
function('STOP')
1,请建议什么样的线是最适合这个节目,thread.start_new_thread()似乎不具备退出()或终止()从主程序。选择性线程终止程序
2.how确保计时器仍在运行,然后终止thred
需要,因为使用线程工作,过程给出了一个错误,说新的进程是不能够使用变量从旧的,我其实调用其他函数而不是打印'TIMER EXPIRED'和'TIMER STOPPED'
比混乱更糟糕(或者,因为我喜欢想象它,*更好* :),从外部终止线程是*不可能*。 Python不提供这样做的方法。离线程终止最近的事情是让线程通过销毁它的环境来引发异常,但是这不会影响被某个线程阻塞的线程(如'time.sleep()')。 – 2012-02-14 23:51:32
@wim我从来没有用过Queue的目前我正在寻找一个更具体的答案,因为我没有更多的时间来解决这个问题 – 2012-02-14 23:54:00
我无法告诉你如何一起修复一个快速修复,没有“修复”,因为上面的设计基本上被打破了。你不能在睡眠10秒时再次调用你的'function',因为它正忙着睡10秒.. – wim 2012-02-15 00:12:21