Bonjour à tous,
J'aimerais créer une classe nommé "Thread" auquel des sous classe Thread_XXXX heriterais de ses caractéristiques. Cette Fameuse classe Thread j'aimerais la rendre virtuel de préférence, car elle n'as aucunement besoin d'etre implémenté.
Le schéma :
le soucis :
Mes classes Thread_XXXX doivent surcharger la methode run qui est le code qui serat exécuté dans le thread.
Le constructeur du Thread quant à lui fait un pthread_create qui renseigne cette methode run.
Pour que le pthread_create accepte cette methode je dois la mettre en static, ce qui m'empeche de faire une surcharge via les sous classes de thread.
Le code de Thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include <pthread.h> class Thread { private: pthread_t thread; static void* run(void*); public: Thread(); ~Thread(); void start(); void stop(); };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include "Thread.hpp" void Thread::start() { pthread_create (&this->thread, NULL, this->run, NULL); } void* Thread::run(void*) { }
Je ne sais pas du tout comment contourner ce probléme, car j'aimerais par la suite rajouter une fabrique pour pouvoir aisément creer mes threads en tout genre.
Je vous remercie d'avance de vos éventuelles sugestions.
Merci.
Partager