![]() |
thread erstellen
Hi,
bei mir haperts gerade bisschen am verständnis. Ich hab mir auf delphi treff das tutorial über Threads durchgelesen. Wollte ich gleich mal ausprobieren. Jedoch brauch ich 200 threads. Soll ich nun einen thread erstellen und diesen 200 mal aufrufen, zb mit einer for schleife, oder soll ich direkt 200 threads erstellen? 200 threads einzeln zu erstellen wäre ein bisschen mühsam denke ich, wie kann man das machen? danke :) |
Re: thread erstellen
Zitat:
|
Re: thread erstellen
Unter Win32 kann eine Anwendung maximal 16 (oder waren es 20?) aktive Threads haben. Erzähl doch mal was du mit 200 threads erreichen willst, gibt sicherlich eine bessere Lösung. Ansonsten: ja, du implementierst einen Thread und erzeugst dann mehrere Instanzen davon.
EDIT: Zitat:
|
Re: thread erstellen
Erstmal scheint mir die Anzahl völlig am Ziel der Threads vorbei zugehn.
Wofür brauchst du denn diese vielen Threads? Wenn man z.B. 4 Prozessoren/Kerne hat, dann können praktisch immer nur 4 Prozesse/Threads gleichzeitig laufen. Bei mehr müssen die Threads stückchenweise verteilt/abgearbeitet werden. Wenn z.B. 2 Threads auf einem Kern liegen, dann werden diese abwechelnd bearbeitet (jeweils ein paar Millisekunden lang der Eine und dann wieder der Andere. Hier würde ich mir eine Liste anlegen, wo die 200 Aufgaben drinstehn und dann holt sich ein/mehrere Threads (maximal soviele wie CPUs/Kerne) sich dort eine Aufgabe raus, bearbeitet diese und holt sich dann die nächste Aufgabe, bis die Liste (Queue) leer ist. PS: Windows sollte schon mehr als 16/20 Threads verkraften (vorallem wenn ein Großteil nicht viel zu tun hat ... jeder Prozeß hat mindestens einen Threads und du kannst hunderte/tausende Programme gleichzeitig ausführen) |
Re: thread erstellen
naja wie soll ich das sagen, ich will 200 verbindungen zu einem webservice aufbauen, so ähnlich soll dass dann ausschauen
|
Re: thread erstellen
für 200 Verbindungen braucht man doch aber keine 200 Threads. Wenn du 20 Label auf dein Formular packst brauchst du doch auch keine 20 Threads dafür.
|
Re: thread erstellen
Zitat:
Man kann eine Threadklasse einmal schreiben, und von dieser dann in einer Schleife beliebig viele erzeugen. Jeder Thread kann dann entweder sofort ei der Erzeugung auch gestartet werden, oder man kann alle erst einmal z.B. in eine TObjectList aufnehmen und dann der Reihe nach starten. Wichtig ist dass alle Objekte ausserhalb der Threads threadsicher angesprochen werden (GUI und gemeinsam genutzte Daten). Ich nehme an es wird ein Stresstest für einen Web Service? Cheers, |
Re: thread erstellen
naja, na gut, es geht eben darum, meinen flooder weiter auszubauen, ich habe mir mehrere flood arten geschrieben (icmp, http, ping, syn) und will jetzt mit mehreren threads flooden. (nur zu übungszwecken und MEINEN root (unlimited traffic, sonst würd ich mich ja ruinieren^^)
wie ich das anstell, das ist mein problem. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:04 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