Combien d'objets de synchronisation peuvent être utilisés par processus et par ordinateur sous Windows?

StackOverflow https://stackoverflow.com/questions/829211

  •  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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top