AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob Thread noch Aktiv

Ein Thema von Metschu · begonnen am 18. Okt 2014 · letzter Beitrag vom 19. Okt 2014
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Prüfen, ob Thread noch Aktiv

  Alt 19. Okt 2014, 08:26
Wie Dejan Vu schon korrekt angemerkt hat liegt der größte Fehler in der Sichtweise beim Arbeiten mit Threads.

Ein Thread ist ein Ausführungs-Kontext. Punkt - mehr nicht!

So ein Thread kann eine Aufgabe (Task) ausführen, damit der Hauptthread (aha, noch ein Thread) dadurch nicht belastet wird, denn die Aufgabe des Hauptthreads besteht in der Kommunikation mit dem Anwender.

Vergleichen kann man das mit einem Unternehmen. Da gibt es die Mitarbeiter (Threads) und die erledigen Aufgaben (Tasks). Was mich interessiert ist nicht ob ein Mitarbeiter aufhört (ich bin nicht vom Personalwesen), sondern ob die Aufgabe erledigt wurde.

Das Konstrukt aus dem Ausgangspost könnte man wie folgt darstellen:
Ich stelle einen Mitarbeiter für genau eine Aufgabe ein und wenn der diese Aufgabe erledigt hat, dann kann er sich wieder schleichen (FreeOnTerminate) So, den Erwin habe ich dafür gewonnen und der geht auch fröhlich an sein Werk. Nach einer gewissen Zeit rufe ich dann Erwin .... aber da kommt keine Antwort. Der Erwin ist einfach schon nach Hause gegangen.

In Delphi XE7 ist das jetzt (endlich aber noch nicht abschließend) integriert. Da gibt es ThreadPools (die Personalabteilung) und Tasks (Aufgaben). Man erstellt einfach nur noch Aufgaben (Tasks) und die Personalabteilung (ThreadPool) kümmert sich darum, dass genügend Mitarbeiter (Threads) vorhanden sind abhängig von den verfügbaren Ressourcen (Auslastung der CPU).
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz