[linux-l] Java Thread vs. c fork

Ihno Krumreich ihno at lst.de
Mi Okt 22 01:09:36 CEST 2003


On Mon, Oct 20, 2003 at 09:38:11PM +1000, Peter Ross wrote:
> On Mon, 20 Oct 2003 tknop at giant.local wrote:
> > ../j2sdk_nb/j2sdk1.4.2/bin/java MakeThreads
> > Exception in thread "main" java.lang.OutOfMemoryError: unable to create
> > new native thread
> >         at java.lang.Thread.start(Native Method)
> > 	        at MakeThreads.main(MakeThreads.java:20)
> 
> Hoffen wir mal, dass der Fehler "Out of memory" richtig ist. fork(2) gibt
> bei Out of Memory den gleichen Fehler zurueck wie bei Erreichen von
> Systemlimits, die Anzahl der Prozesse betreffend (ulimit bzw.
> Kernel-Begrenzungen)

fork scheitert im allgemeinen immer an Speichermangel. Einfache
Rechnung: Allein jeder Prozessleitblock braucht auf intel 4K
Bei 1000 Prozessen allein 4 MByte. Darin ist noch nicht enthalten
der Speicher fuer Stack und aehnliches. Ich habe es bisher nur auf
Rechnern mit mehreren Gigabyte RAM erlebt, dass das Limit von
32760 (maximale Anzahl Prozesse im Linux-System) erreicht wurde.

Gruss

Ihno




Mehr Informationen über die Mailingliste linux-l