ich benutze für die Threads pthreads, die Methode dürfte jedoch überall anwendbar sein:
Wenn ein Thread erstellt wird, wird eine C-Funktion aufgerufen, diese bekommt von pthreads einen von mir definierten Parameter mitgegeben:
Code:
pthread_create(&serverthread, this, start_server_thread, 0);
// This zeigt auf die benutzte Klasse und wird dem Thread übergeben.
Die Threadfunktion sieht dann so aus:
Code:
void *start_server_thread(void *thisptr)
{
((GameEngine*)thisptr)->serverThread();
return 0;
}
(Der übergebene Pointer wird gecastet und darüber die Memberfunktion des Threads aufgerufen)
Natürlich geht das nur mit public-Funktionen, für "richtige" C++-Threads könntest du dir vllt glibmm anschauen, die unterstützt das afair.
EDIT:
Übrigends, trotz aller Multicore-Optimierung, übertreibs nicht mit den Threads, mehr als 3 - 4 gleichzeitig sind nicht nur unnützt sondern machen das Programm auch unnötig komplizierter (Thread Safety).