Ich versuche, eine Java-Anwendung auszuführen, genauer gesagt ein Glas ein zusammengestellt, mit execve() in c
etwas wie folgt aus:verhindern Java-Programm von der Öffnung Threads
char *cmd[] = {"a.jar"};
execve("a.jar",cmd,NULL);
, die funktioniert OK, aber wenn ich versuche, die Anzahl der Threads zu begrenzen, die dieses Programm öffnen können so etwas mit:
struct rlimit rlp;
rlp.rlim_cur = rlp.rlim_max = limit_nproc;
setrlimit(RLIMIT_NPROC,&rlp);
ich habe ein Problem mit der JVM, die Threads öffnen würde, und ich bin zu verhindern, dass so habe ich diesen Fehler:
Wie kann ich verhindern, dass die in der Java-Anwendung geöffneten Threads geöffnet werden, aber nicht die von der JVM geöffneten Threads? !
Bitte beachten Sie, ist die Frage, wie Benutzer-Threads zu verhindern, aber nicht System-Threads, ich brauche eine Beschränkung auf die Fahrumgebung wie das, was ich in meinem zweiten Code „RLIMIT_NPROC“ tat
und Dank!
Erkennung seines Happenings würde die Arbeit mit mir auch –
Mögliche Duplikate von [Java führen aus Speicherproblem] (http://stackoverflow.com/questions/18078859/java-run-out-of-memory-issue) –
Wenn Sie die Anzahl der Prozesse/Threads begrenzen, wird Java nicht daran gehindert, Threads zu starten. Wenn Sie nicht mehr genügend Arbeitsspeicher oder Systemressourcen haben, um Threads zu erstellen, wird die Einstellung von 'RLIMIT_NPROC' auf eine niedrigere Zahl nur dazu führen, dass Ihr Java-Prozess die Threads * schneller * auslässt. –