Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
Delphi 10.2 Tokyo Professional
|
AW: Multithreading mit OmniThreadLibrary
23. Jun 2015, 16:38
Um die Verwirrung etwas zu mindern eine kleine Erklärung die hoffentlich hilft:
Generell (bei nur einem CPU-Kern z.B.) laufen Prozesse und Threads nicht WIRKLICH gleichzeitig.
Auch wenn du Notepad, Firefox und World of Warcraft offen hast läuft immer nur eins dieser Programme zu einem bestimmten Zeitpunkt.
Das Betriebssystem wechselt nur so schnell zwischen den Prozessen/Threads hin und her, dass das nicht auffällt und es sich anfühlt als würden
diese Prozesse/Threads alle gleichzeitig/parallel ausgeführt werden.
Uwe Raabes Anmerkung war, dass ECHTE Gleichzeitigkeit nur mit mehreren CPU-Kernen möglich ist.
Also 1 Kern führt Notepad aus und der andere führt GLEICHZEITIG Firefox aus.
Und auch dann können nur so viele Prozesse/Threads gleichzeitig ausgeführt werden wie die CPU Kerne besitzt.
Es ist halt die Frage was du genau testen willst. Mit einer Quadcore CPU kannst du genau genommen NICHT simulieren dass
8 verschiedene Benutzer ABSOLUT gleichzeitig auf die Datenbank zugreifen, weil es in der Praxis so sein wird dass
(im Idealfall) 2x 4 Zugriffe hintereinander ausgeführt werden (innerhalb weniger ms).
Wenn du den Datenbankserver bzw. die Datenbank nur testen willst ob sie eine gewisse Belastung aushält musst
du dir darüber aber in meinen Augen keine Gedanken machen.
Application.Processmessages o.ä. hat in einem Thread nichts zu suchen. Threads werden auch so schon (pseudo-)parallel ausgeführt! (s.o.)
Habe die OTL noch nicht benutzt aber je nachdem solltest du erst mal mit TThread o.ä. rumexperimentieren, da dir in dem Bereich Threads wohl
noch ein Stück Erfahrung und Wissen fehlt und dich die OTL möglicherweise nur noch mehr verwirren könnte.
Michael "Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
|