暂停函数中的线程并恢复它

时间:2014-10-23 05:36:02

标签: python multithreading

我的程序中有很多线程,如下所示。我想在从一个线程调用一个特定函数时暂停所有线程,然后应该在该函数的函数执行完成后或在1秒的延迟之后恢复。例如,在下面的代码中,我想在执行switch3时暂停线程switch1和switch2,然后在switch2完成执行后或在1秒的时间后恢复这些线程。

有谁能告诉我如何在下面的代码中实现?

def switch1():
    if (buttonpressed ==1):
     print 1

def switch2():
    if (buttonpressed1 ==1):
     switch3()
     print 1

def switch3():
    if (buttonpressed2 ==1):
     print 1

def main():
    switch1thread=threading.thread(target=switch1)
    switch2thread=threading.thread(target=switch2)
    switch1thread.start()
    switch2thread.start()

1 个答案:

答案 0 :(得分:0)

如果没有线程本身的合作,你不能暂停和恢复线程。您要暂停或恢复的线程可以通过检查某些标志来暂停和恢复自身 例如。你可以在执行switch3之前设置一些标志。如果设置了该标志,switch2switch1将自行暂停。