Thread warten lassen, oder neu erstellen?



  • Hallo Leute,

    hab mal ne ganz abstrakte frage?^^ Folgendes: Ich hab eine "Programmer" für ein exteren Geräte programmiert. Der Programmer Übertragt Konfigurationedaten und Programmdaten an das Gerät. Jeder Parameter wird über den Comport einzeln nacheinander übertragen. Das ganze mache ich mit einem Thread.

    A:
    Bisher ist es so das ein Progarmmer Objekt erzeuge,welches dann automatisch einen Thread erzeugt, der auf den Befehlt "ÜBertrage Daten" warten. Wenn sie übertagen sind geht er wieder in den warte modus. so das ganze funktioniert einwandfrei.

    B:
    Nur frag ich mich, ob ich erst bei dem Befehl "ÜBertrage Daten" den Thread erzeugen soll, die daten übertragen und danach den trhead wieder beeneden soll?

    Was ist besser? was meint ihr.. ist eigentlich egal oder? :schland: :schland:



  • threads immer wieder neu zu erzeugen ist verhältnismässig langsam. in deinem fall könnte es aber egal sein.
    🙂



  • Auf einem PC mit massenhaft Speicher u. einer relativ performanten CPU spielt es, wie "fricky" bereits schrieb, sicherlich keine große Rolle.

    Wenn du dein "Programmer" z.Bsp. ein echtes Stück Hardware ist u. diese nur sehr begrenzte Resourcen zur Verfügung stellt, dann spielt es unter Umständen schon eine Rolle.

    Wenn du in Richtung Laufzeit optimieren musst/willst, dann ist es meist besser einen Thread am leben zu lassen u. bei Bedarf wieder auf ihn zurückzugreifen. (Ich hatte auch Projekte, wo man sich einen Threadpool zu Beginn anlegt u. dann nach Bedarf sich einen nimmt)

    Zu jeden Thread muss dein OS eine ganze Menge an Overhead speichern, z.Bsp. hat jeder Thread einen eigenen Stack. Dieser wird logischerweise jedes mal erzeugt, wenn du den Thread neu anlegst. Das kostet erstens Zeit u. zweitens belegtst du damit Speicher für die gesammte Lebenszeit.

    Eine "Gernallösung" für deine Frage gibt es meiner Meinung nach nicht, kommt eben immer auf den Verwendungszweck, HW-Vorraussetzungen bzw. Anforderungen an.

    gruss



  • gute, das hab ich mir gedachte, das es unter diesen umständen keine rolle spielt... damit ich nicht nochmal alles rum frimel, las ich den thread eben lebendig;) :schland: :schland:


Anmelden zum Antworten