Сколько объектов синхронизации можно использовать на процесс и машину в Windows? - PullRequest
3 голосов
/ 06 мая 2009

Весьма вероятно, что существует ограничение на то, сколько объектов синхронизации - семафоров, событий, критических секций - может обрабатывать один и все процессы на данном компьютере. Что именно это ограничение?

Ответы [ 2 ]

4 голосов
/ 06 мая 2009

Для окон ограничение процесса на дескрипторы ядра (семафоры, события, мьютекс) составляет 2^24.

С MSDN :

Обработчики объекта ядра обрабатываются конкретный. То есть процесс должен либо создайте объект, либо откройте существующий объект для получения ядра дескриптор объекта. Лимит на процесс на дескрипторах ядра это 2 ^ 24 . Тем не мение, ручки хранятся в выгружаемом пуле, поэтому фактическое количество ручек вы может создать на основе доступных объем памяти. Количество ручек, которые вы можно создать на 32-битной Windows значительно ниже, чем 2 ^ 24.

2 голосов
/ 06 мая 2009

Зависит от квоты, доступной для процесса. Я думаю, что в XP он установлен на 10000 на процесс, но он может расти. Я не уверен, каков верхний предел.

Только что снова проверил, ограничение 10000 для дескрипторов GDI, а не для объектов ядра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...