Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Wie viele Threads kann man in einer Anwendung starten? (https://www.delphipraxis.net/108933-wie-viele-threads-kann-man-einer-anwendung-starten.html)

Thomas83 21. Feb 2008 12:35


Wie viele Threads kann man in einer Anwendung starten?
 
hi,

wie viele Threads kann ich in einer Anwendung starten?
So das Windows und meine Anwendung das noch hinbekommt.

Gibt es da eine Begrenzung?

o0o 21. Feb 2008 13:15

Re: Wie viele Threads kann man in einer Anwendung starten?
 
bin mir nicht sicher aber ich denke es gibt keine begrenzung...^^

ok mit ueber 20threads hab ich auch noch nicht gearbeited aber was hast du vor bzw wieviele threads willst du denn?^^

o0o

RavenIV 21. Feb 2008 13:20

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Zitat:

Zitat von Thomas83
wie viele Threads kann ich in einer Anwendung starten?
So das Windows und meine Anwendung das noch hinbekommt.

Ich denke schon, dass es eine EInschränkung gibt.
Spätestens, wenn keine Handles mehr verfügbar sind.

Ich meine, mich zu erinnern, dass es vor langer Zeit mal eine Diskussion darüber gab.
Such doch mal nach "Anzahl Handles" oder so.

Und schreibe Deine Erkenntnis dann auch wieder hier rein.

sirius 21. Feb 2008 13:38

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Hier steht zum Beispiel das:
Zitat:

Jeder Thread muss verwaltet werden, was eine Anwendung langsamer macht und Arbeitsspeicher benötigt. Nicht umsonst weist Borland darauf hin, dass bei einem Ein-Prozessor-System 16 aktive Threads eine praktikable Obergrenze darstellen.

sakura 21. Feb 2008 13:59

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Wenn jeder Thread rechenintensive Aufgaben übernimmt, dann ist die max. sinnvolle Anzahl die der Prozessoren bzw. Cores. Auf Prozessoren mit HT, weniger eins. Das sind meine Erfahrungen.

Wenn Deine Threads aber viel Zeit mit "Warten" verbringen, dann sind mehr durchaus praktikabel.

...:cat:...

pitti platsch 21. Feb 2008 14:02

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Also ich hatte mal aus langeweile ein Programm geschrieben, dass ständig neue Threads erstellt. Habs gestartet und nach wenigen Sekunden reagierte mein System kaum noch (Ein-Prozessor-System). Der Taskmanager war offen und zeigte mir um die 7000 Threads an. Task beenden oder PC herunterfahren ging nicht. Da half nur der Resetknopf.

Fazit:
Es gibt definitiv eine Obergrenze^^

Thomas83 21. Feb 2008 14:04

Re: Wie viele Threads kann man in einer Anwendung starten?
 
es soll per dienst verschiedene dinge überwacht werden.
Wollte für jedes object was ich überwache einen thread erstellen.
Glaube aber das es dann zu viele werden.

Thomas83 21. Feb 2008 14:06

Re: Wie viele Threads kann man in einer Anwendung starten?
 
oder ich erstelle für jedes objekt was überwacht werden soll einen timer, da kann ich den intervall auch noch eingeben.

Christian Seehase 21. Feb 2008 14:17

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Moin Thomas,

was für Objekte willst Du denn überwachen?
Vielleicht wäre auch MSDN-Library durchsuchenWaitForMultipleObjects was für Dich

shmia 21. Feb 2008 14:28

Re: Wie viele Threads kann man in einer Anwendung starten?
 
Ein Threadpool wäre bei sehr vielen Aufgaben gut geeignet.

Grundprinzip:
Es gibt eine Jobliste (z.B. 200 Jobs) und einen Pool von Threads (z.B. 5 Stück).
Die Threads legen los und holen sich jeweils einen Job aus der Liste und arbeiten den Job ab.
Wenn ein Thread fertig ist, dann holt er sich den nächsten unerledigten Job - bis die Jobliste leer ist.
Parallel zu den arbeitenden Threads kann die Hauptanwendung stets neue Job in die Liste eintragen.

http://www.delphipraxis.net/internal...t.php?t=111982


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr.
Seite 1 von 3  1 23      

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