AGB  ·  Datenschutz  ·  Impressum  







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

Unterschied TTread.Synchronize / TThread.Queue

Ein Thema von Harry Stahl · begonnen am 19. Jul 2015 · letzter Beitrag vom 22. Jul 2015
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.930 Beiträge
 
Delphi 12 Athens
 
#1

AW: Unterschied TTread.Synchronize / TThread.Queue

  Alt 21. Jul 2015, 18:08
Der bisherige "normale" zusätzliche Thread, der Hintergrundarbeit durchführt und hin und wieder mal die GUI aktualisiert scheint mir daher durchaus weiterhin seine Berechtigung zu haben. Oder?
Ja, sicher, TParallel ist nur ein kleines Hilfsmittel für kleine Aufgaben um die leichter in Threads zu packen, aber für umfangreichere Aufgaben lohnt sich eher eine Umsetzung mit eigenen Threads oder Tasks.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Unterschied TTread.Synchronize / TThread.Queue

  Alt 21. Jul 2015, 19:15
Ja, sicher, TParallel ist nur ein kleines Hilfsmittel für kleine Aufgaben um die leichter in Threads zu packen, aber für umfangreichere Aufgaben lohnt sich eher eine Umsetzung mit eigenen Threads oder Tasks.
Nö wieso das den?

Klar sollte man je nach Aufgabe wählen...

Ich habe "alle" Arten in meiner Software...

- Herkömmliche Thread's für schnelle Reaktionen... Die werden am Anfang des Programmstarts erzeugt und warten nur noch auf ein Event... Daher startet die Verarbeitung in wenigen Nano-Sekunden (Kein Overhead)

- TTask.Run... für das "schnelle mal zwischendurch" zum Beispiel "Save Button"... Der Datenbankzugriff kommt in die anonyme procedure - hier ist der Overhead egal. Ob die Datenbank einige ms später geschrieben wird oder nicht ist egal...

- TParallel... den Overhead für den Thread-Pool gönne ich mir nur dann, wenn ich NIX Synchronisieren muss und die einzelne Verarbeitung länger dauert. Außerdem habe ich die automatische Anpassung an die Kerne... Muss mir also nicht überlegen, wie viele Worker Threads ich erzeugen darf...

- (Idleworker) ist zwar kein Thread aber von System her gehört er für mich hier in die Liste... Nach dem Motto UI-Thread Queue - wenn Du Zeit dafür hast.

Und schon wird die Thread Anwendung zum Kindergeburtstag...

Mavarik
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.168 Beiträge
 
Delphi 12 Athens
 
#3

AW: Unterschied TTread.Synchronize / TThread.Queue

  Alt 21. Jul 2015, 20:19
Hallo Mavarik,

ja das Macht Sinn.

TParallel hatte ich mir noch nicht so tief angeschaut, hatte wohl eine falsche Vorstellung davon.
Ansonsten benutze ich TTask.Run schon recht häufig, für Parallel war noch keine echte Not.

Weil das so simple und schnell mit der anonymen Prozedur vonstatten geht ist das eine echte Beschleunigung, statt erst eigene Threads zu programmieren.
Das ist mein Favorit

Mit TIdleWorker habe ich mich auch seit kurzem beschäftigt, damit kann man auch die Aufgaben schön entkoppeln.

Es macht halt alles Sinn, man sollte nur wissen was geht und was nicht, daran hapert es meistens.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.930 Beiträge
 
Delphi 12 Athens
 
#4

AW: Unterschied TTread.Synchronize / TThread.Queue

  Alt 21. Jul 2015, 21:16
Weil das so simple und schnell mit der anonymen Prozedur vonstatten geht ist das eine echte Beschleunigung, statt erst eigene Threads zu programmieren.
TThread.CreateAnonymousThread gibt es allerdings auch noch.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Unterschied TTread.Synchronize / TThread.Queue

  Alt 22. Jul 2015, 09:42
Weil das so simple und schnell mit der anonymen Prozedur vonstatten geht ist das eine echte Beschleunigung, statt erst eigene Threads zu programmieren.
TThread.CreateAnonymousThread gibt es allerdings auch noch.
Stimmt - das fehlte in meiner Liste...
  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 12:28 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