Combien d'objets de synchronisation peuvent être utilisés par processus et par ordinateur sous Windows?
-
06-07-2019 - |
Question
Il est fort probable qu'il existe une limite au nombre d'objets de synchronisation (sémaphores, événements, sections critiques) pouvant être traités par tous les processus d'une machine donnée. Quelle est exactement cette limitation?
La solution
Pour Windows, la limite par processus des handles du noyau (sémaphores, événements, mutex) est 2 ^ 24
.
De MSDN :
Les descripteurs d’objets du noyau sont des processus spécifique. C'est-à-dire qu'un processus doit soit créer l'objet ou ouvrir un objet existant pour obtenir un noyau poignée d'objet. La limite par processus sur les poignées du noyau est 2 ^ 24 . cependant, les poignées sont stockées dans le pool paginé, de sorte que le nombre réel de poignées vous peut créer est basé sur disponible Mémoire. Le nombre de poignées que vous avez peut créer sur Windows 32 bits est nettement inférieur à 2 ^ 24.
Autres conseils
Cela dépend du quota disponible pour le processus. Je pense que dans XP, il est fixé à 10000 par processus, mais il peut croître. Je ne sais pas quelle est la limite supérieure.
Nous venons de la cocher, la limite 10000 concerne les descripteurs GDI et non les objets du noyau.