AW: Multithreating
30. Apr 2012, 07:27
Wenn ich alle X ms neue Daten bekomme, deren Verarbeitung y ms benötigt, dann brauche ich mindestens trunc(0.5+y/x) Kerne. Hier wären das 3. Ist ja klar, denn bei weniger Kernen kommt vorne mehr rein als hinten raus. Damit benötige ich auch 3 Threads, eventuell einen mehr, wegen des Overheads.
Die Queue muss also mindestens so viele Datensätze vorhalten, wie es Threads gibt.
Damit kann man bei einem Queue-überlauf sofort abbrechen, denn die Hardware, auf dem die Anwendung läuft, wird das nicht packen.
Wenn alle Daten bereits in einem Array vorliegen, solltest Du dir PLINQ anschauen, weil damit das ganze Threadgedöns komplett von C# übernommen wird.
Geändert von Furtbichler (30. Apr 2012 um 08:44 Uhr)
|