2014-10-23 3 views
0

У меня есть много потоков в моей программе, как указано ниже. Я хотел приостановить все потоки, когда одна конкретная функция вызывается из потока, а затем должна возобновиться после завершения выполнения функции этой функции или после задержки в 1 секунду. Например, в приведенном ниже коде я хотел бы приостановить потоки switch1 и switch2 при запуске switch3, а затем возобновить эти потоки после завершения исполнения 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() 

ответ

0

Вы не можете приостанавливать и возобновлять потоки без сотрудничества самой нити. Поток, который вы хотите приостановить или возобновить, может приостанавливаться и возобновляться, проверяя некоторые флаги.
E.g. вы можете установить флаг перед выполнением switch3. switch2 и switch1 будут останавливаться, если этот флаг установлен.

Смежные вопросы