Есть ли способ изменить максимальное количество потоков, которое может быть создано в OS X 10.6 с помощью JVM?

Согласно этому stackoverflow post, в Mac OS X 10.6 существует ограничение на количество потоков, которое может быть создано JVM или любым приложением. Предел можно отобразить, выполнив в терминале следующую команду:

sysctl kern.num_threads

и

sysctl kern.num_taskthreads

systctl имеет возможность переопределить эти значения в Linux, но не в OS X. Согласно эта страница руководства, эти поля нельзя изменить.

Итак, мой вопрос: в OS X 10.6 есть ли другой способ переопределить ограничение на количество создаваемых потоков?


person Jifeng Zhang    schedule 15.12.2010    source источник


Ответы (3)


Вы можете использовать 64-битное ядро ​​и большой объем памяти, чтобы увеличить лимит. См. Общие сведения об ограничениях процесса (это примерно для сервера 10.6). Другого пути не знаю.

person Matthijs Bierman    schedule 15.12.2010
comment
Спасибо, Matthijs, я попробую использовать 64-битное ядро. - person Jifeng Zhang; 15.12.2010

используйте этот cmd в ubuntu 12.10

sysctl  -A | grep thread
person asraful009    schedule 17.05.2013

Если вы достигли этого предела, возможно, вам стоит подумать об изменении дизайна. Сколько у вас ядер? Предел обычно устанавливается на уровне, когда было определено, что система не будет вести себя особенно хорошо.

person Peter Lawrey    schedule 15.12.2010
comment
Спасибо за ваше предложение, это была просто попытка проверить, сколько потоков может создать JVM на другой платформе. В реальном приложении однозначно необходимо переосмысление дизайна. - person Jifeng Zhang; 15.12.2010
comment
@Flying Crab, я часто вижу 10 КБ как верхний предел количества потоков, которые вы хотели бы иметь. Иногда наличие большего количества активных потоков, чем ядер, может быть контрпродуктивным. особенно для приложений с интенсивным использованием ЦП. - person Peter Lawrey; 15.12.2010