/ / Tworzenie wątku timera w pythonie - python, wielowątkowość, python-2.7

Stworzenie wątku timera w pythonie - python, wielowątkowość, python-2.7

from threading import Thread, current_thread

def hello():
print("hello, world")
t = threading.Timer(3.0, hello)
t.start()
print current_thread().name

hello()

Spowoduje to utworzenie nowego wątku okresowo co3 sekundy. Chcę wiedzieć, czy utworzony wątek wygasł, a następnie ponownie zostanie utworzony nowy wątek. Mogę zobaczyć nazwę wątku jako „Thread-1”, „Thread-2”, „Thread-3” i tak dalej. Chcę wiedzieć, czy „Thread-1” ostatecznie zakończy działanie, a następnie zostanie utworzony nowy wątek, tj. „Thread-2” lub nadal „Thread-1” pozostanie aktywny. Proszę o pomoc.

Odpowiedzi:

1 dla odpowiedzi № 1

Twoje wątki zakończą się po ich zakończeniu. W rzeczywistości, ponieważ polecenie drukowania jest ostatnim wierszem hello (), oznacza to, że wątek kończy się, gdy tylko wyświetli swoją nazwę. Możesz użyć threading.enumerate() aby wyświetlić wszystkie działające wątki:

from threading import Thread, current_thread, Timer, enumerate

def hello():
print("hello, world")
t = Timer(3.0, hello)
t.start()
print enumerate()
print current_thread().name, "exiting"

hello()

Jedynym wyjątkiem jest główny wąteknie wychodzi, ale pozostaje w stanie zatrzymania, dopóki program nie zakończy działania, co nigdy nie nastąpiłoby z tym kodem, ale mimo to. Wszystkie inne wątki wykonują swoją pracę, a następnie wychodzą.

Czy to odpowiada na twoje pytanie?

Hannu