Как сохранить активные старые бесконечные потоки, но добавить новые темы нажатием клавиши, а затем войти в консольную программу? - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть следующий тестовый код ниже.Мой вопрос заключается в том, как я могу добавить новые активные темы после нажатия клавиш + ввод, не останавливая другие активные бесконечные циклы.На данный момент я знаю, как остановить все потоки после нажатия клавиши + ввод и только затем добавить новый и затем перезапустить.

Чтобы лучше понять, что я хотел бы получить в конце: мой полный проект уже есть https://github.com/ArtyomKozyrev1989/ICMP-PING-MONITOR

Это работает, но я хотел бы добавить возможность добавить дополнительные IP-адреса после запуска программы без остановки активных сеансов пинга.

import threading
import time
def hello(e):
     while(e.is_set()):
        print("hello")
        time.sleep(2)

def hi(e):
    while(e.is_set()):
        print("hi")
        time.sleep(2)

def key_press(e):
    a=input()
    e.clear()

def circle():
    e=threading.Event()
    e.set()
    MrBoolean=True
    while(MrBoolean):
        thr=[]
        thr.append(threading.Thread(target=hello, args=(e,)))
        thr.append(threading.Thread(target=hi,args=(e,)))
        thr.append(threading.Thread(target=key_press,args=(e,)))
        for i in thr:
           i.start()
        for i in thr:
            i.join()
        print("It is the end!")
        MrBoolean=False
        time.sleep(15)

def main():
    while(True):
        circle()

1 Ответ

0 голосов
/ 25 сентября 2018

В этом случае лучше использовать модуль subprocess.Popen ().

...