J'ai 1500 threads .. Je veux qu'ils fonctionnent sur 12 processeurs ... Pour ce faire, j'appelle SetThreadAffinityMask(GetCurrentThread(),1<<(threadnum%numprocessors))
; où numprocessors = 12. Est-ce que c'est l'utilisation correcte du masque? Il doit être évolutif, c'est-à-dire si je veux qu'il fonctionne avec seulement 11 processeurs, puis SetThreadAffinityMask(GetCurrentThread(),1<<(threadnum%numprocessors));
où numprocessors = 11.SethreadAffinityMask() Utilisation correcte?
Répondre
Syntaxiquement SetThreadAffinityMask (GetCurrentThread(), 1 < < (GetThreadId()% numprocessors)) il est correct, mais ce n'est pas une bonne idée d'utiliser l'affinité juste parce que vous avez beaucoup de fils et processeurs. il peut interférer avec le planificateur et dégrader les performances. Vous pouvez l'utiliser pour certains threads afin de minimiser les échecs de cache. Une absence de cache se produit lorsqu'un thread est déplacé d'un processeur à un autre.
c'est correct. Mais pour des raisons de performance et d'efficacité, je vous suggère de changer votre modèle de thread de manière à ce que le nombre de threads soit égal au nombre de core d'exécution du CPU, alors ces threads fonctionnent sur vos 1500 tâches/work items distribués par votre "Gestionnaire des tâches".
si vous ne voulez pas créer votre propre « gestionnaire de tâches », vous pouvez utiliser des fenêtres ThreadPool API, que vous assignez une tâche à un « pool de threads » géré par O/S
- 1. Utilisation correcte de CSS
- 2. Utilisation correcte de ApplicationContext?
- 3. iOS willRotateToInterfaceOrientation utilisation correcte
- 4. Génériques Wildcards Utilisation correcte
- 5. Yii trace - utilisation correcte
- 6. utilisation correcte de password_hash
- 7. Utilisation correcte de strncmp
- 8. MySQL Enum utilisation correcte?
- 9. HashMap - Utilisation correcte?
- 10. Utilisation correcte de Doxygen
- 11. Utilisation correcte de ArrayAdapter?
- 12. Utilisation correcte de RelativeLayout
- 13. Utilisation correcte de System.Threading.Timer
- 14. Utilisation correcte d'AsyncTask get()
- 15. utilisation correcte de GetClipRgn?
- 16. Utilisation correcte de REST
- 17. Utilisation correcte de CGAffineTransformMakeScale
- 18. Utilisation correcte des NMSSH
- 19. Utilisation correcte de jQuery.text
- 20. Utilisation correcte de NSDateComponents
- 21. Utilisation correcte de pthread_detach
- 22. Utilisation correcte de DllImport
- 23. HBase HTablePool: utilisation correcte
- 24. System.Web.UI.WebControls.FontInfo utilisation correcte
- 25. Utilisation correcte de select_related
- 26. Utilisation correcte de SSL
- 27. mcrypt_decrypt PHP utilisation correcte
- 28. MongoDB - Utilisation correcte des collections?
- 29. Utilisation correcte: NSOperation et NSInvocationOperation
- 30. utilisation correcte de destructuration-bind