|
Bas de page | |
---|---|
Auteur | Sujet : Thread Pool |
in_your_phion | Bonjour, J'essaie de faire un thread pool pour voir comment ça marche. Est ce que vous pourriez me dire si mon implémentation est correcte ...? merci par avance les tâches font rien de spécial, j'ai juste crée ça :
Pour le thread pool, j'ai crée une classe avec une queue qui contient les taches, et un vecteur pour les n threads :
merki Message édité par in_your_phion le 16-07-2012 à 14:59:31 |
Publicité | Posté le 16-07-2012 à 12:42:18 |
theshockwave I work at a firm named Koslow | Tes locks devraient être faits en RAII, tu verras, ca allège pas mal le code dès que tu as des fonctions un peu complexes.
--------------- last.fm |
in_your_phion |
hello ! sinon, comment je pourrais architecturer différement pour ne pas avoir à killer mes threads ...? il y a une technique pour ça ? autrement, comment on choisis le nombre de threads ? J'ai essayé avec plusieurs valeurs, même jusqu'à 512 lol. ça doit être combien généralement ..? merci ps : par ailleurs, pourquoi les "cout" s'affichent souvent un peu n'importe comment, alors que pas les printf ? (pour les mêmes messages) Message cité 1 fois Message édité par in_your_phion le 16-07-2012 à 19:10:33 |
theshockwave I work at a firm named Koslow | Ca dépend complètement de tes besoins.
Message cité 1 fois Message édité par theshockwave le 16-07-2012 à 19:22:19 --------------- last.fm |
in_your_phion |
|
theshockwave I work at a firm named Koslow |
--------------- last.fm |
theshockwave I work at a firm named Koslow | Autre détail : tu as des mutex pour protéger ta file de tâches. Normalement, tu dois pouvoir faire une "lock-free queue". En terme de performance, ca peut changer la vie.
--------------- last.fm |
in_your_phion |
Par exemple, si tu as une matrice géante et que tu veux paralléliser les calculs (un thread par calcul de produit scalaire ligne x colonne), est ce qu'un thread pool est approprié ?
merci je vais essayer ça dans ce cas le signal est juste une variable partagée par les threads ? (genre un booléen ?) Message cité 1 fois Message édité par in_your_phion le 17-07-2012 à 12:08:05 |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
xilebo noone |
|
Publicité | Posté le 17-07-2012 à 20:43:41 |
theshockwave I work at a firm named Koslow |
--------------- last.fm |
in_your_phion |
salut, en fait j'avais essayé avec ça mais ça ne marchais pas terrible pour mon code, car j'avais mis un wait sans timeout, mais avec un timeout ça devrait plus le faire ps : j'aurais encore une autre question, est ce que faire une boucle avec des try_lock() peut être vu comme un spin lock ? merci Message cité 1 fois Message édité par in_your_phion le 18-07-2012 à 11:03:27 |
theshockwave I work at a firm named Koslow |
--------------- last.fm |