AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Verwenden der Parallel Library?

Verwenden der Parallel Library?

Ein Thema von Mavarik · begonnen am 18. Dez 2014 · letzter Beitrag vom 18. Dez 2014
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von Mavarik
Mavarik

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

Verwenden der Parallel Library?

  Alt 18. Dez 2014, 11:39
Hallo Zusammen!

Parallel For ist kein Problem
Task & Future auch nicht...

Aber wie kann eine Task mit der WorkerThread-Logic der For anlegen?

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 11:57
Aber wie kann eine Task mit der WorkerThread-Logic der For anlegen?
Kannst du den Satz bitte einmal in Deutsch übersetzen? Google-Translate versagt hier
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
Benutzerbild von Mavarik
Mavarik

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 13:24
Aber wie kann eine Task mit der WorkerThread-Logic der For anlegen?
Kannst du den Satz bitte einmal in Deutsch übersetzen? Google-Translate versagt hier
Ok Nochmal...

In TTask ist wie ein "normaler" Thread!

Ein Parallel.For erzeugt je nach Core's und CPU Auslastung 1-n Worker Threads.

Ein TTask kann das ja nicht, weil die enthaltenen Procedure "nur" aufgerufen wird.

Ich kann natürlich TTask's erzeugen...

Ich möchte aber ein TTask anlegen, der in Abhängigkeit einer sich ändernden Liste diese mit 1-n Worker Thread abarbeitet.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 13:40
Dann hast du die Threading Library noch nicht verstanden

Ein Task ist eine Aufgabe und diese eine Aufgabe wird in irgendeinem WorkerThread aus dem ThreadPool ausgeführt.

Ein Parallel.For macht nichts anderes als ganz stumpf n Tasks anzulegen und auf die Erledigung aller dieser Tasks zu warten.

Eine Aufgabe (Task) kann nicht automatisch in Untertasks zerlegt werden, die dann parallel ausgeführt werden. Das musst du schon selber machen
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
Benutzerbild von Mavarik
Mavarik

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 13:48
Eine Aufgabe (Task) kann nicht automatisch in Untertasks zerlegt werden, die dann parallel ausgeführt werden.
Logisch - wie auch...

Ich wollte mich in die Routine einklinken die Feststellt hey ich hab noch "platz" für einen weiteren Thread - Gib mir ne Aufgabe.

OK OK OK...

Also HandMade...

Mavarik

PS.: Die wichtige Information war.. Eine TTask wird von einem Worker Thread abgearbeitet und nicht TTask ist ein Thread... Das ist ein entscheidender Unterschied...
Denn dann kann ich N_TTask mit verschiedenen Parametern erzeugen. Z.B. 10000 es werden aber nur Beispiel(4) Thread daraus erzeugt! Richtig?

Geändert von Mavarik (18. Dez 2014 um 13:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 13:54
Häh, wie ... du willst also am ThreadPool vorbei (der genau das nämlich macht) da nochmal entscheiden ...

Irgendwie unlogisch ...

Erzeuge einfach die Tasks, wenn die abgearbeitet werden sollen, wenn es 1000 sind, mach 1000, 100000? mach 100000, usw.

Der ThreadPool kümmert sich darum, die anstehenden Tasks in möglichst kurzer Zeit abzuarbeiten und erstellt automatisch mehr WorkerThreads, wenn die aktuelle Systemauslastung das zulässt.

Wenn du irgendetwas beinflussen willst, dann gehe an den ThreadPool (du bist nicht an den DefaultThreadPool gebunden) und setzte Min/MaxWorker auf einen dir genehmen Wert.
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)

Geändert von Sir Rufo (18. Dez 2014 um 13:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 14:10
Häh, wie ... du willst also am ThreadPool vorbei (der genau das nämlich macht) da nochmal entscheiden ...

Irgendwie unlogisch ...

Erzeuge einfach die Tasks, wenn die abgearbeitet werden sollen, wenn es 1000 sind, mach 1000, 100000? mach 100000, usw.

Der ThreadPool kümmert sich darum, die anstehenden Tasks in möglichst kurzer Zeit abzuarbeiten und erstellt automatisch mehr WorkerThreads, wenn die aktuelle Systemauslastung das zulässt.

Wenn du irgendetwas beinflussen willst, dann gehe an den ThreadPool (du bist nicht an den DefaultThreadPool gebunden) und setzte Min/MaxWorker auf einen dir genehmen Wert.
Ne alles schick... Die wichtige Info war: Eine TTask wird von Worker Threads abgearbeitet und nicht wie ich dachte: TTask ist ein Thread...

Mavarik
[Thread Closed]
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

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

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 17:30
[Thread Closed]
Issa gar nicht ... der ist immer noch offen
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
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 17:40
Der Thraed war auch nie als "offene Frage" markiert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
10.934 Beiträge
 
Delphi 12 Athens
 
#10

AW: Verwenden der Parallel Library?

  Alt 18. Dez 2014, 19:56
[Thread Closed]
Issa gar nicht ... der ist immer noch offen
Dann eben Suspended.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz