2010-12-15 100 views
1

Selon ce stackoverflow post, il existe une limite sur Mac OS X 10.6 pour combien de threads peuvent être créés par JVM ou n'importe quelle application. La limite peut être affichée en exécutant la commande suivante dans le terminal:Existe-t-il un moyen de modifier le nombre maximum de threads pouvant être créés sur OS X 10.6 par JVM?

sysctl kern.num_threads 

et

sysctl kern.num_taskthreads 

systctl a la possibilité de remplacer ces valeurs sur Linux, mais pas sur OS X. Selon this man page, ces champs ne sont pas modifiables.

Donc, ma question est, sur OS X 10.6, y a-t-il une autre façon de contourner la limite de combien de threads peuvent être créés?

Répondre

2

Vous pouvez utiliser le noyau 64 bits et beaucoup de mémoire pour augmenter la limite. Voir Understanding process limits (c'est environ 10.6 Serveur). Je ne connais pas d'autre moyen.

+0

Merci Matthijs, je vais essayer d'utiliser le noyau 64 bits. –

-2

Si vous atteignez cette limite peut-être vous devriez penser à changer votre conception. Combien de noyaux avez-vous? La limite est généralement fixée à un niveau tel qu'il a été déterminé que le système ne se comportera pas particulièrement bien.

+0

Merci pour votre suggestion, c'était juste une tentative de vérifier combien de threads JVM peuvent créer sur une plate-forme différente. Dans une application réelle, une refonte du design est définitivement nécessaire. –

+0

@Flying Crab, je vois souvent 10K comme une limite supérieure sur le nombre de threads que vous voudriez avoir. Certains sujets ayant des fils plus actifs que les noyaux peuvent être contre-productifs. esp pour les applications intensives du processeur. –

-2

utilisent ce cmd dans ubuntu 12,10

sysctl -A | grep thread