Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Verwenden der Parallel Library? (https://www.delphipraxis.net/183188-verwenden-der-parallel-library.html)

Mavarik 18. Dez 2014 10:39

Verwenden der Parallel Library?
 
Hallo Zusammen!

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

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

Mavarik

Sir Rufo 18. Dez 2014 10:57

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Mavarik (Beitrag 1283880)
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 :stupid:

Mavarik 18. Dez 2014 12:24

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1283890)
Zitat:

Zitat von Mavarik (Beitrag 1283880)
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 :stupid:

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.

Sir Rufo 18. Dez 2014 12:40

AW: Verwenden der Parallel Library?
 
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 ;)

Mavarik 18. Dez 2014 12:48

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1283914)
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?

Sir Rufo 18. Dez 2014 12:54

AW: Verwenden der Parallel Library?
 
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.

Mavarik 18. Dez 2014 13:10

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1283924)
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] :stupid:

Sir Rufo 18. Dez 2014 16:30

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Mavarik (Beitrag 1283925)
[Thread Closed] :stupid:

Issa gar nicht ... der ist immer noch offen :P

mkinzler 18. Dez 2014 16:40

AW: Verwenden der Parallel Library?
 
Der Thraed war auch nie als "offene Frage" markiert. :mrgreen:

Uwe Raabe 18. Dez 2014 18:56

AW: Verwenden der Parallel Library?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1283994)
Zitat:

Zitat von Mavarik (Beitrag 1283925)
[Thread Closed] :stupid:

Issa gar nicht ... der ist immer noch offen :P

Dann eben Suspended.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:15 Uhr.
Seite 1 von 2  1 2      

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