2010-12-15 9 views
1

Entsprechend dieser stackoverflow post gibt es eine Begrenzung für Mac OS X 10.6, wie viele Threads von JVM oder einer beliebigen Anwendung erstellt werden können. Die Grenze kann durch Ausführen folgenden Befehl im Terminal angezeigt:Gibt es eine Möglichkeit, die maximale Anzahl von Threads zu ändern, die unter OS X 10.6 von JVM erstellt werden können?

sysctl kern.num_threads 

und

sysctl kern.num_taskthreads 

systctl hat die Möglichkeit, diese Werte auf Linux außer Kraft zu setzen, jedoch nicht auf OS X. Nach this man page, Diese Felder sind nicht veränderbar.

Also meine Frage ist, auf OS X 10.6 gibt es eine andere Möglichkeit, die Grenze der Anzahl der Threads zu überschreiben?

Antwort

2

Möglicherweise können Sie den 64-Bit-Kernel und viel Speicher verwenden, um das Limit zu erhöhen. Siehe Understanding process limits (dies ist ungefähr 10.6 Server). Ich kenne keinen anderen Weg.

+0

Sie Matthijs Danke, werde ich versuchen, die 64-Bit-Kernel zu verwenden. –

-2

Wenn Sie diese Grenze erreichen, sollten Sie vielleicht darüber nachdenken, Ihr Design zu ändern. Wie viele Kerne hast du? Das Limit wird normalerweise auf ein Niveau gesetzt, bei dem festgestellt wurde, dass sich das System nicht besonders gut benimmt.

+0

Danke für Ihren Vorschlag, es war nur ein Versuch zu überprüfen, wie viele Threads JVM auf verschiedenen Plattformen erstellen kann. In einer realen Anwendung ist ein Umdenken des Designs definitiv erforderlich. –

+0

@Flying Crab, ich sehe oft 10K als Obergrenze für die Anzahl der Threads, die Sie haben möchten. Manchmal können mehr aktive Threads als Cores kontraproduktiv sein. esp für CPU-intensive Anwendungen. –

-2

Verwendung dieses cmd in ubuntu 12,10

sysctl -A | grep thread