Threadausführung überwachen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Moin zusammen,

    ich habe mit Python einen DMX Sequenzer gebastelt, welcher über TKinter / Rasp Touchscreen bedient wird.

    Vom Grundsätzlichen läuft der eigentliche Sequenzer mittels eigenem Thread im Hintergrund und bekommt nur über

    eine sich ändernde (globale) Variable mit, welche Sequenzerfolge er abarbeiten soll. Diese Variable wird in der TKinter-GUI gesetzt.

    Jetzt ist es passiert, dass der Sequenzer offensichtlich nicht mehr tat, eine zur Überwachung eingebaute Werte-Anzeige auf der GUI stand wie festgenagelt.

    Mein Verdacht daher ist, dass dieser Thread abgestürzt war.

    Nun zu meiner Kernfrage:

    Beim Start des threads mittels start_new_thread kann ich mir einen Returnwert (=Handle des Threads) geben lassen.

    Ist es möglich, mittels dieses Wertes das "Leben" dieses Threads zu überwachen?

    Grüße

  • Hallo,

    Threads haben eine `is_alive()` Methode, die `True` zurück gibt, wenn der Thread noch läuft.

    Simples Beispiel:

    Nach 6 Sekunden beendet sich der Thread durch eine Exception (weil counter + 'error' nicht funktioniert), entsprechend ist dann `thread.is_alive()`

    Ob du das in der Form für deinen Code übernehmen kannst, müsstest du mal ausprobieren...

    Gruß, noisefloor

  • Jo, danke.

    Nach so einer Möglichkeit habe ich gesucht.:danke_ATDE:

    Bin bloss nicht fündig geworden, weil ich dem "thread" und nicht mit "threading" gearbeitet habe. Muss ich also noch abändern.

    Damit gelingt es mir sicher , die Ursache für den sporadischen "Absturz" des Thread zu loggen.

    Grüße

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!