Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#54

AW: Eigenes 3D MMORPG mit Delphi möglich?

  Alt 12. Dez 2011, 14:10
Du erstellst dir einfach zu Programmstart eine Hand voll Threads, wirfst die in eine Liste, und lässt die zunächst mal alle "Leerrunden" drehen. (repeat Sleep(1) until Terminated) Diese Threads bekommen noch eine Liste von "Arbeitsaufträgen", die sie, so denn was drin steht, von dem Thread abgearbeitet werden - so ein Auftrag könnte rein theoretisch sogar ein Methodenzeiger sein, so dass du beliebige Methoden von wo her auch immer im Threadkontext laufen lassen könntest. (Nur bei OS-Resourcen aufpassen, manche lassen sich nur in dem Thread verwenden, in dem sie erzeugt wurden.) Das wäre aber schon die sehr allgemeine Variante eines Workerthreadpools. Wenn die Funktion immer gleich ist, macht es ggf. mehr Sinn, Daten in den Thread zu stopfen, die der dann mit immer dem gleichen Algo durchnudelt, z.B. Kram übers Netz jagen.

Dadrüber wäre dann eine kleine Managerroutine sinnig, die das Verteilen von Aufgaben an die Threads verwaltet (z.B. dem mit der aktuell kleinsten Arbeitsliste). Und... ich würde das ja in eine hübsche, handliche Klasse kapseln

Damit liefen die Threads an sich also schon von Anfang an, und würden nur bei Bedarf mit Daten oder Methoden gefüttert. Wie viele man davon nachher braucht, ist von der Anwendung abhängig, und je nach Auslastung dieser spielt auch noch die Anzahl CPU Kerne mit rein. Viel mehr als 2*Kernanzahl (logische) macht eher selten wirklich Sinn.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat